gunicorn部署flask项目简单示例

一、WSGI协议

Web框架致力于如何生成HTML代码,而Web服务器用于处理和响应HTTP请求。Web框架和Web服务器之间的通信,需要一套双方都遵守的接口协议。WSGI协议就是用来统一这两者的接口的。

二、gunicorn介绍

gunicorn是一个python Wsgi http server,只支持在Unix系统上运行,来源于Ruby的unicorn项目。Gunicorn使用prefork master-worker模型(在gunicorn中,master被称为arbiter),能够与各种wsgi web框架协作。

三、Flask安装

pip install flask

四、gunicorn安装

pip install greenlet#为使用异步做准备
pip install eventlet#使用eventlet workers
pip install gevent#使用gevent workers
pip install gunicorn

五、创建示例文件app.py

from flask import Flask
app = Flask(__name__)
@app.route('/demo')#如果不想给方法起名就用'/',也可以自己定义名称,例如这里起名为demo
def HelloWorld():
    return 'Hello World!'
if __name__ == '__main__':
    app.debug = True
    app.run()

六、启动gunicorn

gunicorn -w 4 -b 127.0.0.1:8080 app:app

说明:

-b:表示gunicorn 开发的访问地址;建议使用HOST:POST

-w:表示开启多少个线程;建议服务器每一个核心可以设置2-4个

第一个app:表示刚才的app.py文件名app

第二个app:变量名,python文件中可调用的wsgi接口名称

七、向方法中传入参数

例如:

from flask import Flask
app = Flask(__name__)
@app.route('/demo')#如果不想给方法起名就用'/',也可以自己定义名称,例如这里起名为demo
def HelloWorld(a):
    return a
if __name__ == '__main__':
    app.debug = True
    app.run()

则需要修改@app.route()括号中的问题

@app.route('/demo/',methods=['POST','GET'])

八、结束gunicorn服务进程

ps -ef|grep gunicorn
kill -9 gunicorn进程号

 

你可能感兴趣的:(Python,Flask,python)