一、FastApi基础
1.1 简介及官方文档
FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 并基于标准的 Python 类型提示。关键特性:
● 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic),最快的 Python web 框架之一。
● 高效编码:提高功能开发速度约 200% 至 300%。*
● 更少 bug:减少约 40% 的人为(开发者)导致错误。*
● 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
● 简单:设计的易于使用和学习,阅读文档的时间更短。
● 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。
● 健壮:生产可用级别的代码。还有自动生成的交互式文档。
● 标准化:基于(并完全兼容)API 的相关开放标准
官方文档:https://fastapi.tiangolo.com/zh/
1.2 快速上手第一个Web应用
创建项目时,选择fastapi项目,创建成功后,默认代码,直接运行(或者也可以普通python项目,自己安装fastapi然后写代码)

但是这样体现不出fastapi的优势,可以安装一个库–uvicorn,来进行异步构建Web服务,使得性能更高效 uvicorn简介
更改一下代码,使用uvicorn运行
from fastapi import FastAPI
import uvicorn
# 创建应用程序
app = FastAPI()
@app.get("/")
async def root():
return {
"message": "嘿嘿,牛马,你又来学习啦"}
if __name__ == '__main__':
# 运行fastapi服务
uvicorn.run(app, host="127.0.0.1", port=8000)
运行访问接口得到结果:

1.3 交互式后端文档
fastapi项目运行后,可以通过访问:http://127.0.0.1:8000/docs ,查看所有接口,参数,响应等。这个在后续学习能看到。可以在创建app时,对文档进行一些补充说明

例如,创建app时加入说明,再访问文档
app = FastAPI(title='FastApi学习项目', summary='这个是学习项目的接口文档', version='0.0.1')

二、参数类型
在正式进入fastapi学习之前,还需要了解Python的参数类型,这与fastapi无关,是python自带的。
2.1 类型声明的背景和作用
Python 3.6+ 版本引入了"类型提示"
● 类型提示是一种新的语法,用来声明变量的类型
● 提高编辑器和工具的支持能力
为什么要学习类型提示
● 了解类型提示不仅仅对使用 FastAPI 有帮助,也能提高代码的可读性度和可靠性有很大的帮助
类型提示的好处
● 不改变原始运行结果
● 提供更好的编辑器支持和代码补全
编辑器支持
● 通过类型提示,编辑器可以帮助检查代码中的错误
● 例如,将 int 类型的 age 转换为 str 类型
2.2 参数类型使用场景
1.声明变量类型
# 原来pyhton定义变量不用声明类型,可以是任何类型。
name1 = 'John'
name2 = 123
...
# 现在加入类型后,定义类型匹配,编译器就会提示有问题,但是仍然可以运行,不会报错
name3:str = 'John'
# name4:str = 123 给出提示,但不影响运行

2. 函数参数的类型声明
def add(a: int, b: int):
return a + b
a1 = add(3, 5)
a2 = add("3", 5)

3.函数返回值的类型声明
def dogsbody(name: str, age: int) -> dict:
return {
"牛马名字": name, "被辞退年限": 35 - age}
2.3 稍微复杂点的复合类型
如果想要得到的结果是一些嵌套类型的数据
例入:列表嵌套字典的数据格式:[{“name”:“John”},{“age”:18},{“addr”:“地球”}]
需要用到typing库
from typing import List
def dogsbody_info(dogsbody: List[dict]) -

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



