赞
踩
在网络通讯中,请求(Request) 与 响应(Response) 扮演着至关重要的角色,它们构成了客户端与服务器间互动的根本理念。
总的来说,当客户端向服务器发送一个 HTTP 请求时,服务器会处理这个请求,并返回一个 HTTP 响应。
FastAPI,支持多种类型的请求数据,如路径参数、查询参数等。
把参数设置在路径上,识别资源的具体实例。
# 参数 user_id 放在路径上,识别资源的具体实例。
@app.get("/users/{user_id}")
实现步骤:
1. 运行完整代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"user_id": user_id}
2. 部署 uvicorn 服务器:
uvicorn main:app --reload
3. 通过网址访问:
http://127.0.0.1:8000/users/10010
通过在路径后面添加问号(?)来附加查询参数,以提供额外的信息或者过滤条件。
@app.get("/users")
# 网址如下:
http://127.0.0.1:8000/users?user_id=10010&user_name=xuhongduo
实现步骤:
1. 运行完整代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/users/")
def get_user(user_id: int, user_name: str):
return {"user_id": user_id, "user_name": user_name}
2. 部署 uvicorn 服务器:
# 如果已部署,那么无需重启,reload在代码修改时自动重启服务器
uvicorn main:app --reload
3. 通过网址访问:
http://127.0.0.1:8000/users/?user_id=10010&user_name=xuhongduo
响应一般包含:
FastAPI 支持多种类型的响应,包括 JSON 响应、文本响应、文件响应、重定向响应和错误响应。
JSON 响应是最常用的响应类型,用于传输结构化数据。
return {"user_id": user_id, "user_name": user_name}
文本响应发送纯文本数据。
return "Hello, World!"
路由处理函数返回一个 Pydantic 模型实例,FastAPI 将自动将其转换为 JSON 格式,并作为响应发送给客户端:
1. 运行完整代码:
from pydantic import BaseModel from typing import Optional class User(BaseModel): id: int name: str email: Optional[str] = None from fastapi import FastAPI, HTTPException app = FastAPI() users = { 1: {"name": "Alice", "email": "alice@example.com"}, 2: {"name": "Bob"}, } @app.get("/users/{user_id}") def read_user(user_id: int): user = users.get(user_id) if user: return user else: raise HTTPException(status_code=404, detail="User not found")
2. 通过网址访问:
3. FastAPI 自动将 Pydantic 模型实例转换为 JSON 格式:
有关 FastAPI Pydantic 模型,请看 【FastAPI】P4 FastAPI Pydantic
以上
如有任何问题,请联系或留言,谢谢
2024.2.19
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。