phi*_*dah 2 python flask gunicorn
我有一个 Flask 应用程序,我试图通过 Gunicorn 运行它。
该应用程序位于一个模块中,假设其名为“mymodule”,并且__init__.py
位于的文件mymodule/
如下所示:
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
app.run()
Run Code Online (Sandbox Code Playgroud)
但是,无论 URL 是什么,都会返回 404 错误。
我尝试在包含 mymodule 文件夹的文件夹中运行 Gunicorn:
gunicorn -b 127.0.0.1:5000 mymodule:app
Run Code Online (Sandbox Code Playgroud)
我尝试通过运行将 Gunicorn 指向根目录中的调试文件“runapp.py” gunicorn -b 127.0.0.1:5000 runapp.py
,但这会导致error: [Errno 48] Address already in use
.
我究竟做错了什么?
编辑:文件结构
/runapp.py
/mymodule/__init__.py
/mymodule/views.py
Run Code Online (Sandbox Code Playgroud)
运行应用程序.py:
from mymodule import app, views
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
__init.py__
:
from flask import Flask
from mymodule import views
app = Flask(__name__)
if __name__ == '__main__':
app.run()
Run Code Online (Sandbox Code Playgroud)
视图.py:
from mymodule import api
from mymodule.forms import SettingsForm
from functools import wraps
from flask import request, Response, render_template, redirect, url_for
[...]
@app.route('/')
@requires_auth
def dashboard():
data = api.get_overview()
return render_template('dashboard.html', data=data)
Run Code Online (Sandbox Code Playgroud)
之所以会出现这种情况,Errno 48
是因为同一个端口 ( 5000
) 已经忙于另一个应用程序,这意味着您可能会运行应用程序两次。
该404
问题是由于缺乏路线造成的。路由未正确附加,app
因为您未将其导入views
模块中。来自Flask 文档:
\n\n\n这里\xe2\x80\x99s 是一个例子
\n\n__init__.py
:Run Code Online (Sandbox Code Playgroud)\n\nfrom flask import Flask\napp = Flask(__name__)\n\nimport yourapplication.views\n
这就是views.py 的样子:
\n\nRun Code Online (Sandbox Code Playgroud)\nfrom yourapplication import app\n\n@app.route(\'/\')\ndef index():\n return \'Hello World!\'\n
请注意,__init__.py
视图是在创建 Flask 实例后导入的。
归档时间: |
|
查看次数: |
6428 次 |
最近记录: |