我需要使用从InterestGroupsForm类中的main函数实例化的Flask应用程序,以便可以访问数据库。
InterestGroupForm类:
class InterestGroupForm(FlaskForm, app):
c = app.db.cursor()
c.execute('SELECT TAG_TITLE FROM TAGS;')
primary_tags_list = c.fetchall()
print(new_list, file=sys.stderr)
primary_tags = []
.....
在主要功能中:
app = Flask(__name__)
app.db = None
app.config['SECRET_KEY'] = 'a hard to guess string'
bootstrap = Bootstrap(app)
moment = Moment(app)
login_manager = LoginManager(app)
login_manager.login_view = 'login'
user_db = {}
我应该能够正常访问数据库(我在其他地方使用了相同的代码进行查询),但是我不断收到错误消息
Traceback (most recent call last):
File "/home/proj/main.py", line 53, in <module> class InterestGroupForm(FlaskForm, app):
NameError: name 'app' is not defined
答案 0 :(得分:1)
我认为您误解了python类的语法。类名后面的方括号用于继承,您似乎正在将其用作构造函数。
python类的语法为:
app
class InterestGroupForm(FlaskForm):
def __init__(self, app):
c = app.db.cursor()
c.execute('SELECT TAG_TITLE FROM TAGS;')
primary_tags_list = c.fetchall()
print(new_list, file=sys.stderr)
primary_tags = []
.....
不是课程。我怀疑您想要这样的东西:
new_list
但是很难说,因为我不知道{{1}}在哪里定义等等。