愁眉泪眼网

FastAPI 快速入门

FastAPI 快速入门

👑 FastAPI 快速入门

文章目录

  • 👑 FastAPI 快速入门
  • 😉前言
    • 一、速入👻FastApi??
      • 1.😎FastAPI可以做什么
      • 2.🚲为什么要学习 FastAPI
    • 二、速入💌准备工作
      • 1.✨编译器工具
      • 2.🎫python安装教程
      • 3.🎟pycharm安装教程
      • 4.💫安装虚拟环境
    • 三、速入🥐🍞🧈
      • 1.🍚开启服务和接口访问
      • 2.🥗json数据
      • 3.🌮api文档在线生成
      • 4.🥪发送请求
      • 5.🥪获取URL参数
      • 6.🥧获取请求头参数
      • 7.🍥表单获取数据
      • 8.🍲自定义返回JSON信息
      • 8.🥡自定义返回HTML
      • 9.🥖自定义返回文件
      • 10.🍿自定义返回HTML页面
      • 11.🥩代办事项小案例
      • 12.🧃绑定数据库
      • 13.🧃数据库访问
      • 14.🍘数据库写入

😉前言

提示:
🍝面向有一丢丢后端基础的速入
🎂文章为个人学习心得 如有冒犯 call me!
🛴快点做!速入!速入!速入!速入**


一、速入👻FastApi??

😀----😃----连----😃----接----😄----线----😆

1.😎FastAPI可以做什么

🍳由Sebastian Ramirez开发
😀----😃----连----😃----接----😄----线----😆
🍿开发网站
🌭开发 web API
🥐做一个测试平台
🥠做一个持续集成工具
🍣生成文档

😀----😃----连----😃----接----😄----线----😆

2.🚲为什么要学习 FastAPI

🎈FastAPI的速入使用方法和设计参考了几十个python明星项目 博采众长 吸收各家精华
🧨FastAPI和Flask一样简约
FastAPI非常新 并且基于python3.6的类型声明系统

😀----😃----连----😃----接----😄----线----😆
🎨自动生成文档
🎀类型声明和数据检验
🛒内置身份认证
🩳性能强
🎋原生支持异步
🎏强大的依赖注入系统
🧣GraphQL和WebSocket支持

二、💌准备工作

1.✨编译器工具

😀----😃----连----😃----接----😄----线----😆
🎠Python
🎐Pycharm

2.🎫python安装教程

https://www.runoob.com/python/python-install.html

3.🎟pycharm安装教程

runoob.com/w3cnote/pycharm-windows-install.html

4.💫安装虚拟环境

🥪创建项目工程
在这里插入图片描述
🥩安装环境
在这里插入图片描述
🍿安装fastapi
在这里插入图片描述

三、🥐🍞🧈

1.🍚开启服务和接口访问

🥯main.py

import uvicornfrom fastapi import FastAPIapp=FastAPI()if __name__ == '__main__':    uvicorn.run(app)

在这里插入图片描述
🦪服务器运行
在这里插入图片描述
😀----😃----连----😃----接----😄----线----😆
在这里插入图片描述
🍣添加接口
在这里插入图片描述
🍤main

import uvicornfrom fastapi import FastAPIapp=FastAPI()# 添加首页@app.get("/")def index():    return "This is Home Page."if __name__ == '__main__':    uvicorn.run(app)

🍛重新运行项目
在这里插入图片描述
😀----😃----连----😃----接----😄----线----😆
在这里插入图片描述

2.🥗json数据

在这里插入图片描述
🥠重新项目
在这里插入图片描述
🥖json数据格式解析

https://www.json.cn/

在这里插入图片描述

3.🌮api文档在线生成

在这里插入图片描述
🌯文档解析
在这里插入图片描述
🍱文档备注信息
在这里插入图片描述

在这里插入图片描述

4.🥪发送请求

🍥POST请求
在这里插入图片描述
🥚使用ApiPost接口测试工具来访问接口
在这里插入图片描述
在这里插入图片描述
🍢定义多种请求格式
在这里插入图片描述

5.🥪获取URL参数

在这里插入图片描述
在这里插入图片描述
🍧main.py

import uvicornfrom fastapi import FastAPIapp=FastAPI()@app.get("/user/{ id}")def user(id):    return { "id":id}if __name__ == '__main__':    uvicorn.run(app)

6.🥧获取请求头参数

在这里插入图片描述
😀----😃----连----😃----接----😄----线----😆
在这里插入图片描述
🥞main.py

import uvicornfrom fastapi import FastAPI,Headerapp=FastAPI()@app.get("/user")def user(id, token=Header(None)):    return { "id":id,"token":token}if __name__ == '__main__':    uvicorn.run(app)

7.🍥表单获取数据

🥘安装包

python-multipart

在这里插入图片描述
在这里插入图片描述
🍭main.py

import uvicornfrom fastapi import FastAPI,Header,Formapp=FastAPI()@app.get("/user")def user(id, token=Header(None)):    return { "id":id,"token":token}@app.post("/login")def login(username=Form(None),password=Form(None)):    return { "username":username,"password":password}}if __name__ == '__main__':    uvicorn.run(app)

8.🍲自定义返回JSON信息

在这里插入图片描述
🍾main.py

import uvicornfrom fastapi import FastAPIfrom fastapi.responses import JSONResponseapp=FastAPI()@app.get("/user")def user():    return JSONResponse(content={ "msg":"get user"},                        status_code=202,                        headers={ "a":"b"})if __name__ == '__main__':    uvicorn.run(app)

在这里插入图片描述
在这里插入图片描述

8.🥡自定义返回HTML

在这里插入图片描述
在这里插入图片描述
🍣main.py

import uvicornfrom fastapi import FastAPIfrom fastapi.responses import JSONResponse,HTMLResponseapp=FastAPI()@app.get("/user")def user():    return JSONResponse(content={ "msg":"get user"},                        status_code=202,                        headers={ "a":"b"})@app.get("/")def user():    html_content="""    

Hello World

""" return HTMLResponse(content=html_content)if __name__ == '__main__': uvicorn.run(app)

9.🥖自定义返回文件

在这里插入图片描述
在这里插入图片描述
🥨main.py

import uvicornfrom fastapi import FastAPIfrom fastapi.responses import JSONResponse,HTMLResponsefrom starlette.responses import FileResponseapp=FastAPI()@app.get("/user")def user():    return JSONResponse(content={ "msg":"get user"},                        status_code=202,                        headers={ "a":"b"})@app.get("/")def user():    html_content="""    

Hello World

""" return HTMLResponse(content=html_content)@app.get("/avatar")def user(): avatar='./static/violet.jpg' return FileResponse(avatar)if __name__ == '__main__': uvicorn.run(app)

10.🍿自定义返回HTML页面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
🥣main.py

import uvicornfrom fastapi import FastAPI,Requestfrom fastapi.templating import Jinja2Templatesapp=FastAPI()template=Jinja2Templates("pages")@app.get("/")def user(req:Request):    return template.TemplateResponse("index.html",context={ "request":req})if __name__ == '__main__':    uvicorn.run(app)

🍕返回结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.🥩代办事项小案例

🥯main.py
在这里插入图片描述
🍣index.html
在这里插入图片描述
🧂运行项目
在这里插入图片描述
🍞main.py
在这里插入图片描述
🍱index.html
在这里插入图片描述
🍥运行项目
在这里插入图片描述

12.🧃绑定数据库

🍩安装 tortoise-orm
在这里插入图片描述
🍝安装 aiomysql
在这里插入图片描述

🥧main.py
在这里插入图片描述

13.🧃数据库访问

在这里插入图片描述
🍺models.py

from tortoise import Model,fieldsclass Todo(Model):    id=fields.IntField(pk=True)    content=fields.CharField(max_length=500)    create_at=fields.DatetimeField(auto_now_add=True)    updated_at=fields.DatetimeField(auto_now=True)

在这里插入图片描述
🍤main.py

import uvicornfrom fastapi import FastAPI, Request, Formfrom fastapi.responses import RedirectResponsefrom starlette.templating import Jinja2Templatesfrom tortoise.contrib.fastapi import register_tortoisefrom dao.models import Todoapp=FastAPI()template=Jinja2Templates("pages")# 数据库绑定register_tortoise(app,db_url="mysql://root:123456@localhost:3306/fastapi",                  modules={ "models":['dao.models']},                  add_exception_handlers=True,                  generate_schemas=True)todos = ["写日记", "看电影", "玩游戏"]# 添加首页@app.get("/")async def user(req:Request):    todos=await Todo.all()    print(todos)    return template.TemplateResponse("index.html",context={ "request":req,"todos":todos})@app.post("/todo")def todo(todo=Form(None)):    todos.insert(0,todo)    return RedirectResponse("/",status_code=302)if __name__ == '__main__':    uvicorn.run(app)

🍳运行项目
在这里插入图片描述

14.🍘数据库写入

🥗main.py
在这里插入图片描述
🍹运行项目
在这里插入图片描述
🍕数据库里就多了个字段
在这里插入图片描述
🥞此时就是显示有问题
在这里插入图片描述
🍚index.html
在这里插入图片描述
在这里插入图片描述

未经允许不得转载:愁眉泪眼网 » FastAPI 快速入门