Skip to content

FastAPI 部署

使用宝塔部署

为了运维方便,选择直接用宝塔来管理python fastapi的项目,虽然直接部署可能性能更好更灵活,但是我选择了低层本,每个人的选择可能是不一样的,各有 考虑吧。

本文的大逻辑是先写一个helloworld的程序,然后再部署到服务器上

步骤一:先本地运行一个基于fastapi的helloWorld例子,方便后面在服务器上验证

  1. 编写基于FastApi的Hello World文件main.pyjavascript:void(0)😉
python
import uvicorn
from fastapi import FastAPI

app = FastAPI()  

@app.get("/")
def sayHi():
    return {"message":"Hello world!"}

# 启动uvicorn服务,默认端口8000  uvicorn myapi:api  --reload
if __name__ == '__main__':
    uvicorn.run('main:app')
  1. 显示本地运行跑通,本地可以使用vscode编译器,并在运行dos命令
pip install fastapi[all]
uvicorn main:app  --reload

reload参数是为了修改代码后的热部署,运行没有报错后可以浏览器访问: http://127.0.0.1:8000

如果看到打印信息则说明OK

步骤二:在宝塔上部署python的环境

  1. 商店安装插件python进程管理插件
  • Python项目管理器:管理应用实例
  • 进程守护管理器:实例进程的守护
  1. 进入Python项目管理器,首先安装python版本,尽量与本地的一致,避免出现本地好的,服务器上出现问题,特别怕依赖包不一致的问题。本地查看版本的命令是
python --version
  1. 在本地生成requirements.txt,否则宝塔创建项目会报错。创建命令如下
shell
$ pip freeze >requirements.txt
shell
$ pip install -r requirements.txt

将代码上传到宝塔的/www/wwwpython/helloworld

  1. 在python进程管理插件创建项目,具体参数如下,记得选择gunicon

img

遇到问题

启东时:

Failed to find attribute 'application' in 'main'.

前端知识体系 · wcrane