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

29 篇文章 0 订阅
(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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值