FastAPI宝塔部署

FastAPI宝塔部署

环境

  • centos7
  • 宝塔(部署nginx)

命令行操作

  • 上传文件(www/wwwroot/demo1下)

    • # idnex.py
      from fastapi import FastAPI
      
      app = FastAPI()
      
      @app.get("/")
      async def read_root():
          return {"Hello": "World"}
      
      @app.get("/items/{item_id}")
      async def read_item(item_id: int, q: str = None):
          return {"item_id": item_id, "q": q}
      
  • 命令行安装

    • fastapi
    • uvicorn

宝塔操作

  • 安装python项目管理器并配置
    • 打开版本管理安装python 3.6.8(大于3.6即可)
    • 添加python项目
      • 名称自定义
      • 路径为新建的demo1文件
      • 选择安装的python版本
      • 启动方式gunicorn
      • 启动文件index.py
      • 端口8897(任意,记得配置阿里云安全组)
      • 不勾选确认
      • 选择映射
        • 添加外网映射IP地址(会自动生产站点文件)

命令行操作

  • cd 到新建的demo1文件夹下

  • 安装screen

    • yum install screen # centos
      screen -S [name]     #创建新的screen
      screen -ls    #显示当前的screen
      screen -r [name]   #进入到对应的screen中
      
      若screen -ls显示的screen不是detach,则不能进入到对应的screen中,此时就要将其变为detach:
      screen -d [name]     #将该screen变成detach
      
      快捷键ctrl+A, D就是detach当前的screen
      
      screen -wipe  #清楚dead状态的screen
      
      #删除某个screen的两种方法:
      1. screen -r [name]进入到对应的screen中,然后再exit(或者按ctrl+C)
      2. screen -S [name] -X quit   #直接删除该screen
      
  • 运行程序,保持后台运行

    • # 新建一个后台a1的运行程序
      screen -S a1
      screen uvicorn index:app --host 0.0.0.0 --port 8897
      # 修改文件后ctr+c终止程序
      

测试

  • 输入外网地址请求数据xxx.xx.xx.xxx/docs查看接口文档

备注

  • 参考 :https://www.sitstars.com/archives/86/

  • 参考:https://bingwong.org/FastAPI/%E5%88%A9%E7%94%A8FastAPI%E4%B8%BAwordpress%E5%BC%84%E4%B8%80%E4%B8%AAAPI%E6%8E%A5%E5%8F%A3%EF%BC%9AWebStack%20Pro%E7%9A%84API%E5%90%8E%E7%AB%AF%E9%83%A8%E7%BD%B2/


版权声明:本文为sun_hentai原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。