



flask-Restful 不推荐
csharp
from flask_restful import Resource, reqparse
parser = reqparse.RequestParser()
parser.add_argument('username', type=str, required=True, help='Username required')
parser.add_argument('age', type=int, required=True, help='Age required')
class Register(Resource):
def post(self):
args = parser.parse_args()
# 手动校验长度和范围
if not (3 <= len(args['username']) <= 20):
return {'error': 'Username length must be 3-20'}, 400
if not (0 <= args['age'] <= 150):
return {'error': 'Age must be 0-150'}, 400
# 还要手动集成文档(比如用 flask-swagger),代码分散在多处
return {'message': f'Welcome {args["username"]}'}
Fast-api 推荐
csharp
from fastapi import FastAPI
from pydantic import BaseModel, Field
app = FastAPI()
class UserReg(BaseModel):
username: str = Field(..., min_length=3, max_length=20)
age: int = Field(..., ge=0, le=150)
@app.post('/register')
def register(user: UserReg):
return {'message': f'Welcome {user.username}'}