(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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐