Nik*_*s R 3 python module flask python-2.7
我无法使用一个创建 Flask 应用程序对象并运行它的模块,以及一个实现视图(路由和错误处理程序)的模块。这些模块不包含在 Python 包中。
app.py
from flask import Flask
app = Flask('graphlog')
import config
import views
if __name__ == '__main__':
app.run(host=config.host, port=config.port, debug=config.debug)
Run Code Online (Sandbox Code Playgroud)
views.py
from app import app
@app.route('/')
def index():
return 'Hello!'
Run Code Online (Sandbox Code Playgroud)
config.py
host = 'localhost'
port = 8080
debug = True
Run Code Online (Sandbox Code Playgroud)
我总是得到 Flask 的默认“404 Not Found”页面。但是,如果我将 的内容移动view.py
到app.py
,它会起作用。这里有什么问题?
这里有四个模块:
__main__
,主脚本,你给 Python 命令运行的文件。config
,从config.py
文件加载。views
,从views.py
文件加载。app
,从app.py
使用时加载import app
。请注意,后者与第一个是分开的!初始脚本没有被加载app
,Python 认为它是不同的。您有两个Flask
对象,一个引用为__main__.app
,另一个引用为app.app
。
创建一个单独的文件作为脚本的主要入口点;说run.py
:
from app import app
import config
if __name__ == '__main__':
app.run(host=config.host, port=config.port, debug=config.debug)
Run Code Online (Sandbox Code Playgroud)
并import config
从 中删除该行app.py
以及最后两行。
或者(但更丑),from __main__ import app
在views.py
.