Python-100-Days/Day56-60/56-60.用FastAPI开发数据接口.md

71 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## 用FastAPI开发网络数据接口
FastAPI 是一个用于构建API网络数据接口的现代、高性能的Web框架基于Python 3.6+使用了Python中的类型提示进行类型检查非常符合工程化开发的需求在业界有非常好的口碑。下面我们先用代码告诉大家FastAPI到底能做什么然后再来讲解它的方方面面。
### FastAPI五分钟上手
1. 安装依赖库和ASGI服务器支持异步I/O的Python服务器
```Bash
pip install fastapi
pip install uvicorn
```
2. 编写代码`main.py`。
```Python
from fastapi import FastAPI
app = FastAPI()
@app.get('/')
def say_hello():
return {'code': 200, 'message': 'hello, world!'}
```
3. 运行服务。
```Bash
uvicorn main:app --reload
```
> **说明**上面运行uvicorn时使用的`--reload`参数会在代码发生变更时自动重新加载新的内容,这个参数在开发阶段非常的有用。
4. 访问服务。
![](res/run-first-demo.png)
5. 查看文档。
![](res/first-demo-docs.png)
> **注意**FastAPI会基于[Swagger UI](https://swagger.io/tools/swagger-ui/)自动为数据接口生成对应的文档。
### 请求和响应
### 接入关系型数据库
我们可以使用SQLAlchemy三方库来实现对关系型数据库的接入。SQLAlchemy是一个ORM对象关系映射框架ORM框架可以解决Python程序的面向对象模型和关系型数据库的关系模型并不匹配的问题使得我们可以用面向对象的方式实现数据的CRUD操作。
### 依赖注入
### 中间件
### 异步化
### 虚拟化部署Docker
### 项目实战:车辆违章查询