(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