Python 使用SQLAlchemy连接多个表中的数据

Python 使用SQLAlchemy连接多个表中的数据,python,sqlalchemy,Python,Sqlalchemy,我的数据库中有三个表: Links ----------------------- id | student| class 1 | 2 | 1 2 | 1 | 1 3 | 1 | 2 Student ----------------------- id | name | age 1 | Bob | 16 2 | Jane | 17 Class _______________________ id | subject 1 | Math 2 | Science 我希望能够查看链接表,了解哪些学

我的数据库中有三个表:

Links
-----------------------
id | student| class
1 | 2 | 1
2 | 1 | 1
3 | 1 | 2

Student
-----------------------
id | name | age
1 | Bob | 16
2 | Jane | 17

Class
_______________________
id | subject
1 | Math
2 | Science
我希望能够查看链接表,了解哪些学生在哪个班级,并从每个班级的学生表返回结果。所以,如果我在看一个有班级信息的页面,我会得到该班级所有学生的信息。我希望能够使用Sqlalchemy来进行这个查询,这让我很困惑,因为我不能只是一个直接的连接或其他什么

我将把类信息传递给Flask中的函数,如:

@main.route('/class/<class_id>')
@login_required
def view_class(class_id):
@main.route(“/class/”)
@需要登录
def视图_类(类id):

任何帮助都将不胜感激

您可以在下面进行尝试,因为class关键字在python中是保留的,所以需要为Links表使用不同的列名,我在下面将其用作student\u类

@main.route('/class/<class_id>')
@login_required
def view_class(class_id):

    output = session.query(Student).join(Link, Student.id == Link.student).join(Class, Link.student_class == Class.id).filter(Class.id == class_id).all()
@main.route(“/class/”)
@需要登录
def视图_类(类id):
output=session.query(Student).join(Link,Student.id==Link.Student).join(Class,Link.Student\u Class==Class.id).filter(Class.id==Class\u id).all()

为什么不能使用join?我不熟悉如何在SQLAlchemyTH中使用join语句。然而,我认为我在做一些不同的事情,因为我不使用会话进行查询,我使用类似于:
Students.query.filter\u by(is\u registrated='True')
而不是
session.query(Students).filter_by…
当我尝试执行Student.query.join而不是session.query(Student)时,它返回一个列表[],我不确定如何与该列表交互以获取详细信息