在使用flask-script的应用上使用gunicorn
两周前,我强烈的想要学习一点新知识,像新的语言,新的框架之类的!好让我的大脑忙碌起来,寻找了一些日子后,我决定学习现在越来越流行的云应用平台(Paas).因为我认为实战比看教程和阅读文档更有效,我决定写一个flask web程序并在Heroku上部署,经过一段时间的学习与编程后,我想要在Gunicorn生产环境中运行它.
那么,怎么让WSGI应用与gunicorn一起运行呢?在一般的情况下是很简单的,只需要运行
gunicorn appmodule:app
这样就ok了,然而我开发时使用了像如下这样的工厂模式:(一个返回Flask程序实例的函数,Flask-Manager就使用了这个模式)
def create_app(environment='development'):
app = Flask(__name__)
...
return app
flask-script提供了一个可以轻松管理你工作环境的方法,例如你可以轻松的通过下面代码运行服务
python manage.py runserver --environment development
你可以通过参数方便的配置程序,就像Heroku通过修改Procfile文件来配置环境一样
web: python manage.py runserver --environment development
这是非常好的解决方案,不幸的是它并没有向flask开发服务的外部提供任何东西,因此我使用gunicorn时不能像下面这样配置代码
python manage.py rungunicorn --environment production --gunicorn-config gunicorn.ini