项目场景:
flask服务部署到云服务器上,方便外网进行请求服务
问题描述
直接将flask工程进行打包发送到CentOS上可能导致版本不匹配问题,或者是自己的写的模块无法使用
原因分析:
模块无法使用:例如出现 “No model name ’ ‘ "
解决方案:
解决模块无法使用的问题,可以将无法引用的模块,复制到user下的相应的python版本下的lib文件中,就可以解决此问题。
部署Flask
- 引用云服务器上已有的python版本
可以使用pycharm中的ssh连接,进行服务器的连接
在项目工程中,进到相应的python interperter中
点击ADD键,添加新的环境 host 为公网ip userName 为root(默认)
输入密码后,熟悉的可以直接在python interpretrer中填写入python版本(云服上的python版本)
选择导入的文件目录
选取完毕,导入相应的第三方库(requirements.txt)
配置完成相应的服务器的python环境
- 更改代码
通过ifconfig获取云服务器上的内网ip,更改相应的代码
app.run(host="", port= ) # host为内网ip,port为开放的接口端口
使用的端口最好为10000以上,并且需要到阿里云控制台进行端口的开放和控制面板的端口开放。
- 运行代码
点击Edit,设置相应的环境
点击添加,找到python
重新命名开发的环境,在Script path中选择app.py文件
可以成功运行
右键工程,选择上传
- 开启服务
通过XSheel,进入到控制面板,通过命令到工程所在的文件中,通过命令进行服务器的开启和关闭
python3 app.py # 通过linux命令,进入到工程中的运行文件的同级目录中,该命令只能随着窗口执行
# 如果需要后台执行
nohup python3 app.py & # & 取地址符号不可以忘记
# 关闭后台操作
lsof -i tcp:端口号 #通过linux命令,查找后台占用的端口号
kill -9 PID码 # 关闭该端口
- 完成