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项目按钮,填写如下
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
没有回复内容