美文网首页
FastAPI 教程(一)

FastAPI 教程(一)

作者: Frederich | 来源:发表于2020-07-07 11:40 被阅读0次

安装 FastAPI

需要安装 fastapi、uvicorn 以及 python-multipart 三个库。

第一步-一个简单的小程序

简单代码

编写如下代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World"}

要执行这个代码,需要在命令行输入如下命令:

# uvicorn python文件名:FastAPI对象名 --reload
uvicorn main:app --reload

这个命令包括了三个要素:

  • 文件名:比如文件叫做 main.py ,那这里就是 main 。
  • FastAPI对象名:在模块中对应的 FastAPI 的对象名,在本例中就是 app 。
  • --reload:在文件变化后重启服务器,仅用于开发环境。

交互文档

打开 http://127.0.0.1:8000/docs 可以查看交互文档;还有一种格式的可以通过 http://127.0.0.1:8000/redoc 查看。

代码分析

我们要做的是先 导入 FastAPI 类 ,它继承自 Starlette 类,包含了 FastAPI 的所有功能。

接下来是 创建一个 FastAPI 对象

在 FastAPI 中我们通常会用到 POST、GET、PUT、DELETE 四个操作(Operation),对应的就是 post、get、put 和 delete方法。

使用这些方法的时候,需要 传入一个路径 ,然后作为装饰器。

方法可以定义成异步方法,用关键字 async ,也可以不用这个关键字。方法的返回值可以是 dict、list 或者 str、int等。

渲染模板

FastAPI可以使用多种模板引擎,常用的是 jinja2 。使用时需要先安装 jinja2 ,然后设置相应的目录,例如:

from starlette.requests import Request
from fastapi import FastAPI
from starlette.templating import Jinja2Templates

app = FastAPI()
# 设置模板所在目录
templates = Jinja2Templates(directory="templates")


@app.get("/")
async def main(request: Request):  # 使用模板需带上 request
    return templates.TemplateResponse('index.html', {'request': request, 'hello': 'HI...'})


@app.get("/{item_id}/")
async def item_id(request: Request, item_id: int): # 还可以带上其他参数
    return templates.TemplateResponse('index.html', {'request': request, "item_id": item_id})

TemplateResponse 方法的第一个参数就是 模板的路径 ,在上面的例子中,我们需要建立一个 templates 目录,在下面建立一个 index.html 的文件;第二个参数是一个字典 ,包含了 request 请求和一些其他的参数。

如果要使用静态文件,需要先安装 aiofiles ,然后使用 mount 方法来设置静态文件目录,例如:

from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

app = FastAPI()

app.mount("/static", StaticFiles(directory="static"), name="static")

mount 之后就可以使用 url_for 方法来生成静态文件的链接了,例如:

<link href="{{ url_for('static', path='/css/bootstrap.min.css') }}" rel="stylesheet">

相关文章

  • SqlAlchemy:'users' 中的列 'email' 的

    最近在学fastapi,使用的数据库是SQL Server在FastApi官方教程的SQL Database章节[...

  • FastAPI 教程(一)

    安装 FastAPI 需要安装 fastapi、uvicorn 以及 python-multipart 三个库。 ...

  • fastapi教程翻译(一):了解FastAPI结构

    一、编写一个简单的FastAPI程序 最简单的FastAPI文件可能如下: 将上面代码块复制到 main.py. ...

  • FastAPI 教程(四)

    参数校验 基本的类型验证可以通过指定参数类型来实现。 如果需要更复杂的校验,就需要引入 fastapi 的 Que...

  • FastAPI 教程(五)

    Body Field 校验 检验可以写在路由方法中,用 Query、Body、Path 等方法来写入校验条件,也可...

  • FastAPI 教程(六)

    Cookie 变量 从 fastapi 引入 Cookie 后,可以使用类似 Query、Path 的方式来获取 ...

  • FastAPI 教程(三)

    表单 如果要获取表单的数据,需要进行一下步骤: 导入 fastapi 中的 Form 在模板中通过 Form(.....

  • FastAPI 教程(七)

    异常处理 异常处理需要先从 fastapi 中引入 HTTPException,有异常的时候就 raise 一个 ...

  • FastAPI 教程(二)

    路径参数(Path Parameter) 路径参数在路由里面用大括号括起来,在方法中需要把参数写出来,还可以标注参...

  • 1.FastAPI介绍

    一、 Fastapi是什么 FastAPI 框架,高性能,易于学习,高效编码,生产可用 FastAPI 是一个用于...

网友评论

      本文标题:FastAPI 教程(一)

      本文链接:https://www.haomeiwen.com/subject/azhaqktx.html