问题一:
key = 'name'
db.session.query(Student).filter(Student[key] == value)
报错如下:
stu_modify = db.session.query(Student).filter(Student[m_key] == m_value)
TypeError: 'DefaultMeta' object has no attribute '__getitem__'
是不是Student模型的的字段不能用变量表示?
问题二:
db.session.query(Student).filter(Student.name == m_value).first()
报错: 不可以遍历QueryBase
这个是为什么?
可以。
不过,先说一点,在 Python 中:
obj['a']
与obj.a
是不一样的,前者是__getitem__
,后者是__getattribute__
。你要用变量的话,可以
getattr(Student, key) == value
,不过,查询一般不会这样用。看不出为什么,你查询那句是没问题的。