FastApi学习(一)

前言

学习不止

正文

介绍

FastApi是PythonWeb框架的‘新晋干员’,虽然年轻但是很能打
目前已有 12k start
GitHub
官网
为什么说他能打呢?它内部使用了 Python 的 Async 异步,因此速度很快, 也要求必须是 Py3.6+
Async 不同于之前自己实现的 gevent ,Async是官方写的, 听说Py4将会大量使用来提高效率
FastApi官网展示了FastApi的特点

快速:非常高的性能,看齐的NodeJS和Go(感谢Starlette和Pydantic)。现有最快的Python框架之一。
快速编码:将功能开发速度提高约200%至300%。
更少的错误:减少约40%的人为错误(开发人员)。
直观:强大的编辑器支持。完成无处不在。调试时间更少。
简易:旨在易于使用和学习。减少阅读文档的时间。
短:最小化代码重复。每个参数声明中的多个功能。更少的错误。
健壮:获取可用于生产的代码。具有自动交互式文档。
基于标准:基于(并完全兼容)API的开放标准:OpenAPI(以前称为Swagger)和JSON Schema。

才学了一点点的我已经有了类似的感受
关于效率,官网提供了一个基准测试如下
点我查看
关于官方说的与GO和NodeJS看齐这个可以在学习的最后来与Go的Gin对比一下,日后再说

安装

我们使用 pip 来安装
需要注意的是, 官方推荐了可以与 FastApi 搭配的几个模块, 基本上涵盖了几个大的使用场景

由Pydantic使用:

ujson-用于更快的JSON “解析”。
email_validator -用于电子邮件验证。
由Starlette使用:

requests-如果要使用,则为必填TestClient。
aiofiles-如果要使用FileResponse或,则为必填StaticFiles。
jinja2 -如果要使用默认模板配置,则为必需。
python-multipart-如果要使用来支持表单“解析”,则为必填request.form()。
itsdangerous-需要SessionMiddleware支持。
pyyaml-Starlette SchemaGenerator支持所必需的(FastAPI 可能不需要它)。
graphene-需要GraphQLApp支持。
ujson-如果要使用,则为必需UJSONResponse。
由FastAPI / Starlette使用:

uvicorn -用于加载和服务您的应用程序的服务器。
orjson-如果要使用,则为必需ORJSONResponse。
您可以使用安装所有这些pip install fastapi[all]。

也就是说,你可以使用 pip install fastapi[all] 来安装以上推荐的所有模块
如果执行时报错: zsh: no matches found: fastapi[all]
请使用: pip install "fastapi[all]"
如果你不想这样安装,请先安装 两个必须的模块,其他按需安装
pip install fastapi
pip install uvicorn
uvicorn 类似于UWSGI的作用,官网说他与FastApi搭配是性能最佳

HelloWorld

在安装完依赖后,一切的一切就从 HelloWorld 开始
新建一个 py 文件名叫 main.py
内容如下

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"hello": "world"}

猜你喜欢

转载自www.cnblogs.com/chnmig/p/12603895.html