我想将我的代码分为两部分,即应用初始化和视图定义。我导入了我的观点并定义了我的应用,但我得到NameError: name 'manager' is not defined
。为什么我收到此错误?如何正确分割我的代码?
manage.py
:
from flask import Flask,render_template
from flask.ext.script import Manager
import viewports
manager = Flask(__name__)
if __name__=='__main__':
manager.run()
viewports.py
@manager.route('/')
def Home():
return render_template('Home.html', title='FrontPage')
答案 0 :(得分:2)
您创建了一个循环导入:首先导入导入viewports
的{{1}},manager
仅在导入viewports
后定义。您也没有正确组织代码,所有内容都应该在一个包中。您还混淆了创建Flask-Script管理器并创建Flask应用程序。此外,不推荐使用flask.ext
,直接从包名称导入。
my_project/
my_app/
__init__.py
views.py
manage.py
__init__.py
:
from flask import Flask
from flask_script import Manager
app = Flask(__name__)
manager = Manager(app)
from my_app import views
views.py
:
from my_app import app
@app.route('/')
def index():
return 'Hello, World!'
manage.py
:
from my_app import manager
manager.run()