logo
⚙️ 后端框架

FastAPI

FastAPI Cheat Sheet - 快速参考指南,收录常用语法、命令与实践。

📂 分类 · 后端框架🧭 Markdown 速查🏷️ 2 个标签
#fastapi#python
向下滚动查看内容
返回全部 Cheat Sheets

Getting Started

Install & Run
BASH
滚动查看更多
pip install fastapi uvicorn
uvicorn main:app --reload
Hello World
PYTHON
滚动查看更多
from fastapi import FastAPI
app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello FastAPI"}
CLI Run Hint
BASH
滚动查看更多
uvicorn main:app --reload

Routing & Parameters

Path Parameter
PYTHON
滚动查看更多
@app.get("/items/{id}")
def read(id: int):
    return {"id": id}
Query Parameter
PYTHON
滚动查看更多
@app.get("/search")
def find(q: str = "default"):
    return {"q": q}
Optional Query
PYTHON
滚动查看更多
@app.get("/filter")
def filter_data(limit: int = 10, active: bool = True):
    return {"limit": limit, "active": active}

Request Body & Validation

Using Pydantic
PYTHON
滚动查看更多
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
JSON Body
PYTHON
滚动查看更多
@app.post("/items/")
def create(item: Item):
    return item
Response Model
PYTHON
滚动查看更多
@app.post("/items/", response_model=Item)
def create(item: Item):
    return item

Forms, Files, Headers

Form Input
PYTHON
滚动查看更多
from fastapi import Form

@app.post("/login")
def login(user: str = Form(...)):
    return {"user": user}
File Upload
PYTHON
滚动查看更多
from fastapi import UploadFile, File

@app.post("/upload")
def upload(f: UploadFile = File(...)):
    return {"filename": f.filename}
Headers / Cookies
PYTHON
滚动查看更多
from fastapi import Header, Cookie

@app.get("/info")
def info(ua: str = Header(None)):
    return {"UA": ua}

Middleware & Dependency

Middleware
PYTHON
滚动查看更多
@app.middleware("http")
async def log_req(req, call_next):
    res = await call_next(req)
    return res
Dependency
PYTHON
滚动查看更多
from fastapi import Depends

def auth(token: str = ""):
    if token != "xyz": raise HTTPException(401)
    return True

@app.get("/secure")
def secure(_: bool = Depends(auth)):
    return {"secure": True}

Errors & JSON API

HTTP Error
PYTHON
滚动查看更多
from fastapi import HTTPException

@app.get("/err")
def error():
    raise HTTPException(404, "Not Found")
JSON API
PYTHON
滚动查看更多
from fastapi import FastAPI

@app.get("/json")
def get_data():
    return {"status": "ok"}

Templates & Static

Mount Static
PYTHON
滚动查看更多
from fastapi.staticfiles import StaticFiles
app.mount("/static", StaticFiles(directory="static"), name="static")
Jinja2 Support
PYTHON
滚动查看更多
from fastapi.templating import Jinja2Templates
templates = Jinja2Templates("templates")

Routers & Structure

Routers (Blueprints)
PYTHON
滚动查看更多
from fastapi import APIRouter
router = APIRouter()

@router.get("/")
def admin():
    return {"admin": True}

app.include_router(router, prefix="/admin")
Folder Layout
BASH
滚动查看更多
project/
├── main.py
├── static/
├── templates/
├── routers/
│   └── admin.py
└── models/

Docs & Status

Built-in Docs
  • Swagger: /docs
  • ReDoc: /redoc
Custom Status Code
PYTHON
滚动查看更多
from fastapi import status

@app.post("/create", status_code=status.HTTP_201_CREATED)
def create():
    return {"msg": "Created"}

相关 Cheat Sheets

1v1免费职业咨询
logo

Follow Us

linkedinfacebooktwitterinstagramweiboyoutubebilibilitiktokxigua

We Accept

/image/layout/pay-paypal.png/image/layout/pay-visa.png/image/layout/pay-master-card.png/image/layout/pay-airwallex.png/image/layout/pay-alipay.png

地址

Level 10b, 144 Edward Street, Brisbane CBD(Headquarter)
Level 2, 171 La Trobe St, Melbourne VIC 3000
四川省成都市武侯区桂溪街道天府大道中段500号D5东方希望天祥广场B座45A13号
Business Hub, 155 Waymouth St, Adelaide SA 5000

Disclaimer

footer-disclaimerfooter-disclaimer

JR Academy acknowledges Traditional Owners of Country throughout Australia and recognises the continuing connection to lands, waters and communities. We pay our respect to Aboriginal and Torres Strait Islander cultures; and to Elders past and present. Aboriginal and Torres Strait Islander peoples should be aware that this website may contain images or names of people who have since passed away.

匠人学院网站上的所有内容,包括课程材料、徽标和匠人学院网站上提供的信息,均受澳大利亚政府知识产权法的保护。严禁未经授权使用、销售、分发、复制或修改。违规行为可能会导致法律诉讼。通过访问我们的网站,您同意尊重我们的知识产权。 JR Academy Pty Ltd 保留所有权利,包括专利、商标和版权。任何侵权行为都将受到法律追究。查看用户协议

© 2017-2025 JR Academy Pty Ltd. All rights reserved.

ABN 26621887572