就是类似于
select title, page from table;
在flask-SQLAlchemy的文档上好像会看见了
Page.query.all()
这个是返回字符串,我想要的是返回想要的字段的值。
就是类似于
select title, page from table;
在flask-SQLAlchemy的文档上好像会看见了
Page.query.all()
这个是返回字符串,我想要的是返回想要的字段的值。
Flask-SQLAlchemy 的 query 是直接查询 model,查出来的一定是一个 model 对象。
如果要查询单个字段的话,应该用 session 去 query model。
a = db.session.query(Page.title, Page.page).all()
print(a)
b = Page.query.with_entities(Page.title, Page.page).all()
print(b)
这两个查询返回的都是一个列表,列表内的元素是一个元组,不过不是 Python 内置的元组,是 sqlalchemy.util._collections.KeyedTuple。
如果一定基于Model查询,而不是用session查询,正确的方法应该使用:
Page.query.with_entities(Page.title, Page.page).all()
但仍然有个问题,如果表中有many_to_one的外键关系,似乎不能通过这种方法嵌套查询出来。
在model里面写上这个:
下面是调用的地方:
当然,上面只是一条记录,如果是多条记录的话就只能返回对象集,然后从对象集中遍历了。
还有其他方法就是在里面写sql语句了,也很方便的。