python restful API服务器fastAPI
组件
快速开始
# 安装fastAPI
pip install fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装web容器
pip install "uvicorn[standard]" -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装from参数表单
pip install python-multipart -i https://pypi.tuna.tsinghua.edu.cn/simple
编写代码
# main.py
from fastapi import FastAPI, APIRouter
from fastapi.staticfiles import StaticFiles
app = FastAPI()
router = APIRouter()
# 静态目录
app.mount("/static", StaticFiles(directory="./static"), name="static")
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/")
async def read_root():
html_content = """
<html>
<head>
<title>FastAPI</title>
</head>
<body>
<h1>Hello, FastAPI!</h1>
<p>
<a href="https://fastapi.tiangolo.com">
https://fastapi.tiangolo.com
</a>
</p>
</body>
</html>
"""
return HTMLResponse(content=html_content, media_type="text/html")
# 运行
uvicorn main:app --reload
# 也可以用代码实现
if __name__ == "__main__":
uvicorn.run(app, host="localhost", port=8000)
# 生成环境运行参数
# uvicorn main:app --reload --host=localhost --port=8000
约定和规范
project/
│
├── main.py
├── routers/
│ ├── __init__.py
│ ├── items.py
│ └── users.py
├── models/
│ ├── __init__.py
│ ├── item.py
│ └── user.py
├── schemas/
│ ├── __init__.py
│ ├── item.py
│ └── user.py
├── utils/
│ ├── __init__.py
└── templates/
└── index.html
- main.py:主应用文件,定义路由和启动应用。
- routers/:包含路由模块的文件夹。
- models/:包含数据库模型的文件夹。
- schemas/:包含 Pydantic 模型的文件夹。
- utils/:工具包
- templates/:包含 Jinja2 模板的文件夹。