跳转到主要内容

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 模板的文件夹。