我的linode上有一个Flask应用程序设置,其目录结构如下:
|--------flask-test
|----------------app
|-----------------------static
|-----------------------templates
|-----------------------venv
|-----------------------__init__.py
|-----------------------main.py
Run Code Online (Sandbox Code Playgroud)
我__init__.py是:
# __init__.py
from flask import Flask
from main import main
app = Flask(__name__)
app.register_blueprint(main)
app.run()
Run Code Online (Sandbox Code Playgroud)
并且main.py像这样:
# main.py
from flask import Blueprint
main = Blueprint('main',__name__)
@main.route("/")
def hello():
return "Hello World!"
@main.route("/england/")
def england():
return "Hello England!"
Run Code Online (Sandbox Code Playgroud)
如果我在本地运行应用程序没有问题.如果我在Web浏览器中转到我的服务器地址,则会出现内部服务器错误.但是,如果我删除该行:app.run从__init__.py它工作正常.为什么是这样?为什么我不需要run方法?
你应该做
if __name__ == '__main__':
app.run()
Run Code Online (Sandbox Code Playgroud)
原因是Apache或NGINX或其他一些Web服务器直接在服务器上加载您的应用程序,但app.run()运行flask的内部Web服务器,以便您可以测试您的应用程序.
| 归档时间: |
|
| 查看次数: |
1568 次 |
| 最近记录: |