我尝试使用flask cli启动我的应用程序,即flask run。我使用FLASK_APP环境变量指向我的应用程序,即export FLASK_APP=package_name.wsgi:app
在我的wsgi.py文件中,我使用工厂函数创建应用,即app = create_app(config),我的create_app方法如下所示:
def create_app(config_object=LocalConfig):
app = connexion.App(config_object.API_NAME,
specification_dir=config_object.API_SWAGGER_DIR,
debug=config_object.DEBUG)
app.app.config.from_object(config_object)
app.app.json_encoder = JSONEncoder
app.add_api(config_object.API_SWAGGER_YAML,
strict_validation=config_object.API_SWAGGER_STRICT,
validate_responses=config_object.API_SWAGGER_VALIDATE)
app = register_extensions(app)
app = register_blueprints(app)
return app
Run Code Online (Sandbox Code Playgroud)
但是,该应用程序无法启动,出现错误:
无法从“ package_name.wsgi:app”获得有效的Flask应用程序。
为什么是这样?
当我使用gunicorn时,我可以正常启动我的应用程序,即 gunicorn package_name.wsgi:app
我的create_app函数没有返回class对象,flask.app.Flask而是返回class 对象connexion.apps.flask_app.FlaskApp,因为我使用的是connexion框架。
在我的wsgi.py文件中,我可以简单地设置:
application = create_app(config)
app = application.app
Run Code Online (Sandbox Code Playgroud)
我什至不必export FLASK_APP=package_name.wsgi:app再做了,如果flask run命令在文件所在的wsgi.py文件夹中执行,则自动发现会起作用。
| 归档时间: |
|
| 查看次数: |
460 次 |
| 最近记录: |