我一直在努力配置我的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()
根据上面发布的教程中的评论,其他几个用户遇到了同样的问题。我无法理解为什么这个特定的服务器要求名称是“应用程序” - 这是我可以忍受的东西,但它看起来很奇怪。
感谢您提供的任何想法!
答案 0 :(得分:1)
假设您的意思是uWSGI,它会查找名为application
的内容。如果您想给它一个不同的名称,可以在配置中指定一个:
[uwsgi]
callable = app