我有一个简单的单文件应用程序测试使用SQLAlchemy与烧瓶。getResult
视图使用MainResult
模型。但是,导航到/getResult
会引发NameError: global name 'MainResult' is not defined
。该类与视图定义在同一个文件中,所以为什么会出现此错误?你知道吗
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:@localhost/testDB'
db = SQLAlchemy(app)
@app.route('/getResult')
def getResult():
newEntry = MainResult(metadata_key='test')
db.session.add(newEntry)
db.session.commit()
return 'Hello World!'
if __name__ == '__main__':
app.run(debug=True)
class MainResult(db.Model):
metadata_key = db.Column(db.String(128), primary_key=True)
Python按顺序执行文件。
app.run
永远运行。所以文件中app.run
之后的任何内容都不会被执行,直到服务器停止。MainResult
是在应用程序运行之后才定义的,因此视图无法看到它。将其移到__main__
块上方。你知道吗最好使用新的
flask
命令来运行dev服务器。在这种情况下不再需要__main__
块。你知道吗相关问题 更多 >
编程相关推荐