Flask实例名称必须是'application',其他任何内容,例如'app'都会失败

时间:2016-03-09 04:54:50

标签: flask wsgi

我一直在努力配置我的Flask Web应用程序以在Ubuntu机器上运行,从框架的开发服务器转移到生产服务器。

为了帮助我配置WSGI和nginx,我按照DigitalOcean

发布的指南进行了操作

按照指南,一切都很棒!但请注意,在此示例中,Flask的实例名为“application”,与通常几乎everywhere常用的“app”略有不同(例如Flask网站和文档)。

myflaskapp.py的内容:

from flask import Flask
application = Flask(__name__)

@application.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    application.run()

wsgi.py的内容:

from weather import application

if __name__ == "__main__":
    application.run()

但是,如果我要将上述文件中的实例名称从“应用程序”更改为“app”,则会收到“内部服务器错误”,日志文件中没有任何内容表明原因。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

from myflaskapp import app

if __name__ == "__main__":
    app.run()

根据上面发布的教程中的评论,其他几个用户遇到了同样的问题。我无法理解为什么这个特定的服务器要求名称是“应用程序” - 这是我可以忍受的东西,但它看起来很奇怪。

感谢您提供的任何想法!

1 个答案:

答案 0 :(得分:1)

假设您的意思是uWSGI,它会查找名为application的内容。如果您想给它一个不同的名称,可以在配置中指定一个:

[uwsgi]
callable = app