将python sqlalchemy查询转换为SQL

时间:2018-10-16 00:39:46

标签: python sql database postgresql sqlalchemy

对于一项作业,我正在处理一组涉及学区的postgreSQL数据库。我正在尝试填充新字段student_gpas,该字段是存储唯一学生gpa的数组。我已经在python中使用sqlalchemy使用以下代码完成了此操作:

schools = db.session.query(School).filter(school.is_selected == true).all()
For sch in schools:
  grades = db.session.query(Grade).filter(grade.school_id == sch.id).all()
  For gr in grades:
    classes = db.session.query(Class).filter(class.grade_id == grades.id).all()
    For cl in classes:
      students = db.session.query(Student).filter(student.class_id == cl.id).all()
      For st in students:
    If st.gpa not in gr.student_gpas:
      gr.student_gpas.append(st.gpa)

如果我想使用此代码段并将其转换为一个长而难以置信的复杂SQL语句,它将是什么样子

1 个答案:

答案 0 :(得分:0)

要查看正在生成的内容,只需使用echo = True标志创建引擎。

我从sqlalchemy网站上获取了以下内容[1]:

from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:', echo=True)
  

echo标志是设置SQLAlchemy日志记录的快捷方式,这是通过Python的标准日志记录模块完成的。启用它,我们将看到所有生成的SQL。

[1] https://docs.sqlalchemy.org/en/latest/orm/tutorial.html#connecting