Python 如何从类中的main访问对象
我需要使用从InterestGroupsForm类中的main函数实例化的Flask应用程序,以便访问db 兴趣组窗体类:Python 如何从类中的main访问对象,python,Python,我需要使用从InterestGroupsForm类中的main函数实例化的Flask应用程序,以便访问db 兴趣组窗体类: 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)
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
回溯(最近一次呼叫最后一次):
文件“/home/proj/main.py”,第53行,在课堂兴趣组表单(烧瓶表单,应用程序)中:
NameError:未定义名称“app”
我认为您误解了python类的语法。类名后的括号用于继承,您似乎将其用作构造函数
python类的语法为:
class ClassName(BaseClass):
def __init__(self, args): # this is the constructor
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 = []
.....
但是很难说,因为我不知道新列表是在哪里定义的等等。显示完整的错误+回溯没有给出太多其他信息:回溯(最近一次调用):文件“/home/proj/main.py”,第53行,在类兴趣组表单(FlaskForm,app):名称错误:名称“app”没有定义