您的位置:首页 > 移动开发

NameError: name 'app' is not defined(关键词:flask/bug)

2017-11-25 11:55 906 查看
(venv) henry@henry-virtual-machine:~/dev/myproject/flaskr$ tree
.
├── flaskr.py
├── schema.sql
├── static
└── templates


# flaskr.py

import os
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, abort, \
render_template, flash

# app = Flask(__name__)

def connect_db():
rv = sqlite3.connect(app.config['DATABASE'])
rv.row_factory = sqlite3.Row
return rv

def init_db():
with app.app_context():
db = get_db()
with app.open_resource('schema.sql', mode='r') as f:
db.cursor().executescript(f.read())
db.commit()

if __name__ == '__main__':
app.run()


运行报错:

Traceback (most recent call last):
File "/home/henry/dev/myproject/flaskr/flaskr.py", line 23, in <module>
app.run()
NameError: name 'app' is not defined
[Finished in 1.5s]


解决:

添加

app = Flask(__name__)


全部代码:

# flaskr.py

import os
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, abort, \
render_template, flash

app = Flask(__name__)

def connect_db():
rv = sqlite3.connect(app.config['DATABASE'])
rv.row_factory = sqlite3.Row
return rv

def init_db():
with app.app_context():
db = get_db()
with app.open_resource('schema.sql', mode='r') as f:
db.cursor().executescript(f.read())
db.commit()

if __name__ == '__main__':
app.run()


参考文献:

1.https://stackoverflow.com/questions/29277581/flask-nameerror-name-app-is-not-defined

2.https://stackoverflow.com/questions/21028254/nameerror-name-app-is-not-defined-with-flask

3.https://stackoverflow.com/questions/36215342/flask-nameerror-name-app-is-not-defined
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  flask bug