FastAPI入门

版本要求

Python 3.6+

安装库

$ pip install fastapi

$ pip install uvicorn

入门例子

# main.py
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

如果是异步,可以这么写

# main.py
from fastapi import FastAPI

app = FastAPI()

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


@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

启动方式

$ uvicorn main:app --reload --port 18080

uvicorn main:app 命令指:

  • main: main.py 文件(也可理解为Python模块).
  • app: main.py 中app = FastAPI()语句创建的app对象.
  • --reload: 在代码改变后重启服务器,只能在开发的时候使用
  • 默认端口是8000,可以使用--port来指定其他端口

启动后输出:

INFO:     Uvicorn running on http://127.0.0.1:18080 (Press CTRL+C to quit)
INFO:     Started reloader process [19071]
INFO:     Started server process [19091]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

可以看到服务已经启动,访问路径是http://127.0.0.1:18080

检查是否服务政策

打开你的浏览器,输入 http://127.0.0.1:18000

你将会看见JSON响应:

{"hello": "world"}

查看生成API的文档

可选的依赖

  1. Pydantic提供:
ujson - 更快的JSON

email_validator - 电子邮件的验证
  1. Starlette提供:
requests - 如果你想要使用TestClient, 需要导入requests.
aiofiles - 如果你想使用FileResponse or StaticFiles, 需要导入aiofiles.
jinja2 - 如果你想使用默认的模板配置,需要导入jinjia2.
python-multipart -如果要使用request.form()支持表单“解析”,则为必需。
itsdangerous -“SessionMiddleware”支持需要。
pyyaml - 如果需要 SchemaGenerator 支持, 则为必要.
graphene -如果需要 GraphQLApp 支持, 则为必要.
ujson - 如果你想使用 UJSONResponse, 则为必要.
  1. FastAPI / Starlette提供:

uvicorn - 加载和提供应用程序的服务器.

  1. 一次性全部安装
pip3 install fastapi[all]
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

  • 1、开启公众号开发者模式 公众平台的技术文档目的为了简明扼要的交代接口的使用,语句难免苦涩难懂,甚至对于不同的读者...
    good7758阅读 5,470评论 0 1
  • 点我查看本文集的说明及目录。 本项目相关内容包括: 实现过程: CH7 创建在线商店 CH8 管理支付和订单 CH...
    学以致用123阅读 9,129评论 0 6
  • FastAPI framework, high performance, easy to learn, fast ...
    HassGy阅读 13,929评论 1 4
  • 童年时期的阿央是极其残暴的,以致我现在回想起来仍瑟瑟发抖。不仅是我和老妹怕阿央,邻居家的孩子们也怕阿央。曾经的一...
    我是老旦阅读 4,583评论 2 1
  • 午饭排骨炖黄豆,冰箱里翻出来某养生馆做促销时送的富硒黑豆。留着无用,跟黄豆一起跟肉肉一锅端了。 叫人意...
    a18f57f30df0阅读 3,003评论 0 0

友情链接更多精彩内容