FastAPI 初步尝试

1. json格式

服务端

from typing import Union

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class Item(BaseModel):
    name: str
    price: float
    is_offer: Union[bool, None] = None


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}


@app.post("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_id": item_id, "item_name": item.name, "item_price": item.price}

客户端


import requests

url = "http://127.0.0.1:8000/items/5"

# get
params = {"q": "xxx"}
resp = requests.get(url=url, params=params)
print(resp.text)

# post
data = {
    "name": "apple",
    "price": 10,
    "is_offer": True
}
resp = requests.post(url=url, json=data)
print(resp.text)

2. form格式

服务端

from fastapi import FastAPI, Form


app = FastAPI()


@app.post("/login/")
def login(username: str = Form(...), password: str = Form(...)):
    return {"username": username, "password": password}

客户端

import requests

url = "http://127.0.0.1:8000/login/"

headers = {
    "Content-Type": "application/x-www-form-urlencoded"
}

data = {
    "username": "usr",
    "password": "123456"
}

resp = requests.post(url=url, headers=headers, data=data)
print(resp.text)
posted @ 2022-11-17 19:44  二二二狗子  阅读(41)  评论(0)    收藏  举报