当前位置:   article > 正文

python FastAPI 简单使用_fastapi局域网访问

fastapi局域网访问

1.安装

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

2.简单使用

        

  1. from fastapi import FastAPI
  2. import uvicorn
  3. from pydantic import BaseModel
  4. from starlette.middleware.cors import CORSMiddleware
  5. # 调用路由文件
  6. from router1 import router as router_api1
  7. app = FastAPI()
  8. # 解决跨域
  9. app.add_middleware(
  10. CORSMiddleware,
  11. # 允许跨域的源列表,例如 ["http://www.example.org"] 等等,["*"] 表示允许任何源
  12. allow_origins=["*"],
  13. # 跨域请求是否支持 cookie,默认是 False,如果为 True,allow_origins 必须为具体的源,不可以是 ["*"]
  14. allow_credentials=False,
  15. # 允许跨域请求的 HTTP 方法列表,默认是 ["GET"]
  16. allow_methods=["*"],
  17. # 允许跨域请求的 HTTP 请求头列表,默认是 [],可以使用 ["*"] 表示允许所有的请求头
  18. # 当然 Accept、Accept-Language、Content-Language 以及 Content-Type 总之被允许的
  19. allow_headers=["*"],
  20. # 可以被浏览器访问的响应头, 默认是 [],一般很少指定
  21. # expose_headers=["*"]
  22. # 设定浏览器缓存 CORS 响应的最长时间,单位是秒。默认为 600,一般也很少指定
  23. # max_age=1000
  24. )
  25. # get 无参数
  26. @app.get(/test_1)
  27. def test_1():
  28. return {'code':200, 'msg':'成功'}
  29. # get 带参数
  30. @app.get(/test_2)
  31. def test_2(user_name, password):
  32. """
  33. 需要执行的动作
  34. """
  35. retrurn {'code':200, 'msg':'成功'}
  36. # BaseModel 类创建了一个数据模型 Item,并将其作为参数传递给路由函数。FastAPI 将自动解析传入的 JSON 数据,并根据模型的定义进行验证
  37. class Item(BaseModel):
  38. user_name:str
  39. password:str
  40. # post
  41. @app.post(/test_3):
  42. def test_3(item:Item):
  43. return {'item': item}
  44. # 路径参数 item_id 来接收传递的参数。这种方式适用于将参数直接包含在 URL 路径中。
  45. @app.post("/test/{item_id}")
  46. def read_item(item_id: int):
  47. # 处理特定项目的逻辑
  48. return {"item_id": item_id}
  49. # 将路由加入app中
  50. app.include_router(router_api1, prefix='/router_api1')
  51. if __name__ == "__main___":
  52. # 启动服务
  53. # 本地访问:127.0.0.1:8088
  54. # 局域网电脑访问:本机IP:8088
  55. uvicorn.run(app, host="0.0.0.0", port=8088)

 

router1.py

  1. from fastapi import APIRouter, Request
  2. router = APIRouter()
  3. # 定义路由
  4. @router.post("/test")
  5. async def test(request:Request):
  6. # 定义Request参数,接收前端传过来的json数据
  7. data = await request.json()
  8. return {'msg':'测试成功','data':data}

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/995127
推荐阅读
相关标签
  

闽ICP备14008679号