宝塔部署fastapi网站-论坛板块1论坛-论坛分类11-拾光宝藏

宝塔部署fastapi网站

1. 打包本地的fastapi项目,放到网站根目录

我这里是/www/wwwroot/python_pj/MultBackend,

需要注意的是:

1 把requirements.txt放到项目根目录。

2 修改.env中配置的数据库相关内容

3 修改 app.py中字段

# https_only=True,  # 确保会话仅在 HTTPS 下传输
# httponly=True, # 禁止 JavaScript 访问 cookie

2. 宝塔中添加项目

在网站》python项目中,点击添加python项目按钮,填写如下

20250218112642163-image

3. 点击新添加的MultBackend, 配置其他项目

1 域名管理中,添加域名

2 打开外网映射,放行端口

3 配置文件中添加反向代理:主要是域名,和端口(端口映射到80

4 配置ssl

4. 创建数据库

1 数据库名称和用户名最好和添加的项目名称一致,方便管理

2 在项目中修改添加的数据库名和密码

5. 启动项目

在网站》python项目中,打开项目

 

出现的问题及解决

1 端口没有打开

a 需要在安全中打开启动命令中对应的端口

b 需要在ngnix中配置端口

c 需要在阿里云管理平台上开放对应端口 –【这里不需要,因为端口映射到80,不需要对外再开放

2 项目报错index过长

修改原来项目中的database/mysql.py中创建数据库

# 支持完整的 Unicode 字符集,包括 emoji 表情符号
"charset": "utf8mb4",
# 强制 MySQL 在严格模式下运行, 防止插入无效数据(如:超长字符串被自动截断),当数据不符合要求时会报错而不是静默处理
"sql_mode": "STRICT_TRANS_TABLES",

修改models/users.py中的字段中的max_length 为180

比如:
password = fields.CharField(null=True, max_length=180)
nickname = fields.CharField(default="", max_length=180, description='昵称')

3 启动项目时,mysql报错

报错原因是我的服务器mysql版本不支持jsonfield,把项目中所有jsonfield改成textfield

请登录后发表评论

    没有回复内容