如何从类中的main访问对象

时间:2019-05-01 01:16:32

标签: python

我需要使用从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 

1 个答案:

答案 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}}在哪里定义等等。