Развертывание приложения фляги с помощью uwsgi и диспетчера флеш-скриптов
Традиционно я настроил файл конфигурации 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')
...
Но теперь я слежу за книгой Мигеля Гринберга и здесь он использует фабрику приложений, как показано ниже
mydirectory/ersapp/__init__.py
...
def create_app(config_name):
webapp = Flask(__name__)
...
return webapp
с "менеджером" (см. менеджер колб-скриптов)
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 ---
...
2 ответа
Вы не используете 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
Примечание: вызываемое является именем объекта колбы в wsgi.py
,