【问题标题】:Flask application with Blueprints+uWSGI+nginx returning 404's (no routing?)带有 Blueprints+uWSGI+nginx 的 Flask 应用程序返回 404(没有路由?)
【发布时间】:2014-04-30 07:17:49
【问题描述】:

用 nginx+uWSGI 成功部署了一个最小的 Flask 应用程序,我被这个难住了。

from flask import Flask
from bsfdash.users import users
from bsfdash.dashboard import dashboard 
from bsfdash.customs import customs
from bsfdash import app 

if __name__ == '__main__':
    app.register_blueprint(users)
    app.register_blueprint(dashboard)
    app.register_blueprint(customs)

    app.run()

为了确认我的 nginx 和 uWSGI 设置正确,我使用返回“Hi!”的 @app.route('/') 使用简单的“Hello World”Flask 应用程序进行了测试。 - 它按预期工作。

但是,上面显示的应用程序使用 localhost:5000 上的烧瓶网络服务器按预期工作 - 但通过 uWSGI 调用时不会路由 @dashboard.route('/') 蓝图。

我发现关于使用 uWSGI 部署包含蓝图的模块化 Flask 应用程序的信息为零。

为什么这个应用程序可以作为 Flask 网络服务器工作,但通过 uWSGI 却脑死了?

【问题讨论】:

  • 但是当uwsgi 导入app 时,它不会运行__main__ 块;移动您的蓝图注册。将if 测试中的那些移出
  • 谢谢@MartijnPieters 将蓝图注册从 if 测试中移出,现在可以使用了!

标签: nginx flask url-routing uwsgi


【解决方案1】:

您能否向我们提供有关您的应用结构的更多信息? 我有一个带有蓝图的工作 Flask 应用程序,如果它可以帮助你的话。

应用程序/run.py:

import sys
sys.path.append("/subone")

from iel import app, manager
from flask.ext.migrate import MigrateCommand

manager.add_command('db', MigrateCommand)

app.debug = True
manager.run()

应用程序/subone/__init__.py

from flask import Flask
from flask.ext.script import Manager
from subone import models

app = Flask(__name__)
app.config.from_object('settings')

manager = Manager(app)

#Blueprints
from catalog.views import catalog
app.register_blueprint(catalog)

from login.views import login
app.register_blueprint(login,url_prefix="/login")

if __name__ == '__main__':
  app.run(debug=True)

App/subone/catalog/__init__.py:

from flask import Blueprint

【讨论】:

    猜你喜欢
    • 2014-04-30
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 2014-03-08
    • 2015-11-15
    • 1970-01-01
    相关资源
    最近更新 更多