python FastAPI 简单使用

1.安装

          fastapi包:pip install fastapi
          uvicorn 启动服务:pip install uvicorn

2.简单使用

        

from fastapi import FastAPI
import uvicorn
from pydantic import BaseModel
from starlette.middleware.cors import CORSMiddleware

# 调用路由文件
from router1 import router as router_api1

app = FastAPI()

# 解决跨域
app.add_middleware(
    CORSMiddleware,
    # 允许跨域的源列表,例如 ["http://www.example.org"] 等等,["*"] 表示允许任何源
    allow_origins=["*"],
    # 跨域请求是否支持 cookie,默认是 False,如果为 True,allow_origins 必须为具体的源,不可以是 ["*"]
    allow_credentials=False,
    # 允许跨域请求的 HTTP 方法列表,默认是 ["GET"]
    allow_methods=["*"],
    # 允许跨域请求的 HTTP 请求头列表,默认是 [],可以使用 ["*"] 表示允许所有的请求头
    # 当然 Accept、Accept-Language、Content-Language 以及 Content-Type 总之被允许的
    allow_headers=["*"],
    # 可以被浏览器访问的响应头, 默认是 [],一般很少指定
    # expose_headers=["*"]
    # 设定浏览器缓存 CORS 响应的最长时间,单位是秒。默认为 600,一般也很少指定
    # max_age=1000
)

# get 无参数
@app.get(/test_1)
def test_1():
    return {'code':200, 'msg':'成功'}

# get 带参数
@app.get(/test_2)
def test_2(user_name, password):
    """
        需要执行的动作
    """
    retrurn {'code':200, 'msg':'成功'}

# BaseModel 类创建了一个数据模型 Item,并将其作为参数传递给路由函数。FastAPI 将自动解析传入的 JSON 数据,并根据模型的定义进行验证
class Item(BaseModel):
    user_name:str
    password:str

# post
@app.post(/test_3):
def test_3(item:Item):
    return {'item': item}

# 路径参数 item_id 来接收传递的参数。这种方式适用于将参数直接包含在 URL 路径中。
@app.post("/test/{item_id}")
def read_item(item_id: int):
    # 处理特定项目的逻辑
    return {"item_id": item_id}


# 将路由加入app中
app.include_router(router_api1, prefix='/router_api1')

if __name__ == "__main___":
   # 启动服务
   # 本地访问:127.0.0.1:8088  
   # 局域网电脑访问:本机IP:8088
   uvicorn.run(app, host="0.0.0.0", port=8088)   

    

 

router1.py

from fastapi import APIRouter, Request

router = APIRouter()

# 定义路由
@router.post("/test")
async def test(request:Request):
    # 定义Request参数,接收前端传过来的json数据        
    data = await request.json()
    
    return {'msg':'测试成功','data':data}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值