当前位置: 首页 > news >正文

flask:部署到生产环境

一,创建测试代码

$ mkdir deployproj
$ cd deployproj/
$ python3 -m venv venv
$ source venv/bin/activate
$ vi app.py

app.py

from flask import Flaskapp = Flask(__name__)@app.route('/')
def index():return 'Hi! It works!<br/>您好,flask frame'if __name__=='__main__':app.run(debug=True)

运行代码:

$ pip install flask
$ flask run

运行效果:

image

二,用gunicorn做wsgi容器

1,安装gunicorn

$ pip install gunicorn

运行 gunicorn

$ gunicorn -w4 -b0.0.0.0:8000 app:app

-w 表示开启多少个 worker,-b 表示 gunicorn 开发的访问地址。

app是Python文件名,第二个app是文件中的变量名或者函数名

运行效果:

image

三,使用supervisord管理进程

1,安装

$ pip install supervisor

生成配置文件

$ echo_supervisord_conf > supervisor.conf

编辑配置文件:在末尾增加:

[program:gunicorn]
command=/data/python/deployproj/venv/bin/gunicorn -w4 -b0.0.0.0:8000 app:app    ; supervisor启动命令
directory=/data/python/deployproj                                                 ; 项目的文件夹路径
startsecs=0                                                                             ; 启动时间
stopwaitsecs=0                                                                          ; 终止等待时间
autostart=false                                                                         ; 是否自动启动
autorestart=false                                                                       ; 是否自动重启
stdout_logfile=/data/python/deployproj/logs/gunicorn.log                           ; log 日志
stderr_logfile=/data/python/deployproj/logs/gunicorn.err

3,supervisor的启动和管理:

启动supervisord服务

$ supervisord -c supervisor.conf

查看supervisord管理的进程

$ supervisorctl -c supervisor.conf status
gunicorn                         STOPPED   Not started

启动进程:

$ supervisorctl -c supervisor.conf start gunicorn
gunicorn: started

启动后再次查看:

$ supervisorctl -c supervisor.conf status
gunicorn                         RUNNING   pid 9530, uptime 0:00:03

停止进程:

$ supervisorctl -c supervisor.conf stop gunicorn
gunicorn: stopped

停止进程后查看状态:

$ supervisorctl -c supervisor.conf status
gunicorn                         STOPPED   Jan 03 09:37 PM

停止supervisord服务:

$ supervisorctl -c supervisor.conf shutdown
Shut down

停止服务后查看状态:

$ supervisorctl -c supervisor.conf status
unix:///tmp/supervisor.sock no such file

 

http://www.jsqmd.com/news/188842/

相关文章:

  • 企业微信API文档
  • 1.6 机器决策的七步法:从数据到决策,机器学习完整流程揭秘
  • 救命神器2025 TOP10 AI论文工具:专科生毕业论文写作全测评
  • 1.7 数据挖掘标准流程:CRISP-DM方法论在企业中的实战应用
  • 计算机深度学习毕设实战-基于人工智能迁移学习的睡意检测报警系统
  • VP 各省省选记录+题解
  • 1.8 金融行业数据决策全解析:8大核心场景从理论到实战
  • 1.13 数据分析流程全解析:从业务理解到价值输出的完整路径
  • 京东e卡回收学会如何选择方法,三招教你避开90%的变现陷阱 - 京顺回收
  • 探索愈发开放的团队集体好奇心
  • 1.10 评分卡模型构建实战:WOE、IV值计算,信贷违约预测完整流程
  • 1.16 注册类指标 vs 活跃类指标:数据分析师必须知道的指标选择策略
  • 1.11 制造行业数据决策:6大场景从工艺优化到缺陷检测
  • 三明治魔方、凹凸魔方、小红帽魔方
  • Doris 与 Flink 整合实战:构建实时计算分析平台
  • 英语_阅读_A visitor from tomorrow_待读
  • 1.17 指标与维度深度解析:构建数据指标体系的核心要素
  • 1.18 北极星指标 vs 虚荣指标:如何找到真正驱动业务增长的关键指标
  • 面向未来科技发展的AI选题:7大高影响力研究领域的系统分析
  • Python基础语法
  • 课后作业11
  • 智能科学与产业应用结合:7个具有实践价值的毕业论文选题推荐
  • 深度学习计算机毕设之基于Yolo3教学辅助系统的开发(学生考试监考系统)
  • 深度学习毕设选题推荐:基于迁移学习人工智能的睡意检测报警系统
  • langchain4j 学习系列(8)-链式调用
  • 学霸同款2025 AI论文平台TOP9:MBA毕业论文全攻略
  • 174_尚硅谷_map三种用法和应用实例
  • 吐血推荐10个AI论文网站,专科生轻松搞定毕业论文!
  • Linux内核进程管理子系统有什么第九十一回 —— 进程调度(18)
  • 主流的消息队列MQ比较,详解MQ的4类应用场景(上)