前言
之间在使用中发现用flask-sqlalchemy 有两种查询的方法 一种是 session.query 一种是Model.query 本文通过几个编程实验探究下两者的区别。
相同之处
两种方法调用返回的对象都是query 都支持链式查询,在类似列表过滤查询条件这样的场景下,链式查询显得十分有用。
不同之处
找了一些网上的资料好像没有说明两者之间性能的区别,主要区别在用法上。Session.query 是sqlalchemy的原生功能,而model.query 是针对 model的增强,不是原生功能。具体到应用上两者的区别主要为用法不同,以下面几个场景结合输出的·sql语句为例子来体会下。
查询场景1:查询出学生的考试列表
要获得的内容格式如下:
[{
“id”:,
“course_name”:,
“testpaper_title”:,
“start_time”:,
“event_time”:,
“status”:,
“test_scores”:,
},
{
“id”:,
“course_name”:,
“testpaper_title”:,
“start_time”:,
“event_time”:,
“status”:,
“test_scores”: