使用 uwsgi 和 flask-script Manager 部署 flask 应用程序
deploying flask app with uwsgi and flask-script Manager
传统上,我将 UWSGI 配置文件配置为调用如下应用程序:
mydirectory/uwsgi_application.ini
...
#python module to import
app = run_web
module = %(app)
callable = app
...
、
mydirectory/run_web.py
from ersapp import app
if __name__ == "__main__":
app.run()
,
mydirectory/ersapp/__init__.py
...
app = Flask('ersapp')
...
但是现在,我正在关注 Miguel Grinberg 的 Flask 书,他在这里使用如下所示的应用程序工厂
mydirectory/ersapp/__init__.py
...
def create_app(config_name):
webapp = Flask(__name__)
...
return webapp
带有 "manager"(参见 flask-script Manager)
mydirectory/manage.py
from webapp import create_app
...
webapp = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(webapp)
...
if __name__ == '__main__':
manager.run()
在此配置中,我使用 $ python manage.py runserver
触发我的开发服务器
而在我用 $ python run_web.py
触发它之前
现在,我正在为将什么放入 uwsgi 配置文件以允许通过 UWSGI 部署此应用程序而苦恼。具体来说,app
、module
和 callable
变量。
我在日志中遇到的错误是:
...
--- no python application found, check your startup logs for errors ---
...
您不将 Flask-Script 与 uWSGI 一起使用。您直接将其指向应用程序。或者在您的情况下,您将其指向对应用程序工厂的调用。最简单的例子是:
uwsgi --module 'myapp:create_app()'
我也在使用 flask-script
管理器,所以我所做的是
创建了一个 wsgi.py
。这就像。
from app import *
application = create_app("development")
然后uwsgi --wsgi-file wsgi.py --callable application
注意:callable是wsgi.py
中的flask对象名。
传统上,我将 UWSGI 配置文件配置为调用如下应用程序:
mydirectory/uwsgi_application.ini
...
#python module to import
app = run_web
module = %(app)
callable = app
...
、
mydirectory/run_web.py
from ersapp import app
if __name__ == "__main__":
app.run()
,
mydirectory/ersapp/__init__.py
...
app = Flask('ersapp')
...
但是现在,我正在关注 Miguel Grinberg 的 Flask 书,他在这里使用如下所示的应用程序工厂
mydirectory/ersapp/__init__.py
...
def create_app(config_name):
webapp = Flask(__name__)
...
return webapp
带有 "manager"(参见 flask-script Manager)
mydirectory/manage.py
from webapp import create_app
...
webapp = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(webapp)
...
if __name__ == '__main__':
manager.run()
在此配置中,我使用 $ python manage.py runserver
而在我用 $ python run_web.py
现在,我正在为将什么放入 uwsgi 配置文件以允许通过 UWSGI 部署此应用程序而苦恼。具体来说,app
、module
和 callable
变量。
我在日志中遇到的错误是:
...
--- no python application found, check your startup logs for errors ---
...
您不将 Flask-Script 与 uWSGI 一起使用。您直接将其指向应用程序。或者在您的情况下,您将其指向对应用程序工厂的调用。最简单的例子是:
uwsgi --module 'myapp:create_app()'
我也在使用 flask-script
管理器,所以我所做的是
创建了一个
wsgi.py
。这就像。from app import * application = create_app("development")
然后
uwsgi --wsgi-file wsgi.py --callable application
注意:callable是wsgi.py
中的flask对象名。