我有一个Flask应用程序,我正试图通过Gunicorn。
该应用位于一个模块中,让我们称之为" mymodule",位于__init__.py
的{{1}}文件如下所示:
mymodule/
但是,无论URL如何,都会返回404错误。
我尝试在包含mymodule文件夹的文件夹中运行Gunicorn:
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
app.run()
我已经尝试将Gunicorn指向我的调试文件," runapp.py"在根目录中,通过运行gunicorn -b 127.0.0.1:5000 mymodule:app
,但结果为gunicorn -b 127.0.0.1:5000 runapp.py
。
我做错了什么?
修改:文件结构
error: [Errno 48] Address already in use
runapp.py:
/runapp.py
/mymodule/__init__.py
/mymodule/views.py
from mymodule import app, views
app.run(debug=True)
:
__init.py__
views.py :
from flask import Flask
from mymodule import views
app = Flask(__name__)
if __name__ == '__main__':
app.run()
答案 0 :(得分:4)
你得到Errno 48
因为同一个端口(5000
)已经忙于另一个应用程序,这意味着你可能会运行你的应用程序两次。
404
问题是由缺乏路线引起的。这些路由未正确附加到app
,因为您未在views
模块中导入该路由。来自Flask documentation:
以下是
__init__.py
示例:from flask import Flask app = Flask(__name__) import yourapplication.views
这就是views.py的样子:
from yourapplication import app @app.route('/') def index(): return 'Hello World!'
请注意,{<1}}视图在创建Flask实例后导入。