Python 如何使用SQLALCHEMY从两个表中获取数据
假设我有一个模型Python 如何使用SQLALCHEMY从两个表中获取数据,python,orm,sqlalchemy,flask-sqlalchemy,Python,Orm,Sqlalchemy,Flask Sqlalchemy,假设我有一个模型 import os from flask import Flask from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class Students(db.Model): __tablename__ = "students" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String,
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Students(db.Model):
__tablename__ = "students"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
description = db.Column(db.String, nullable=False)
class Hobbies(db.Model):
__tablename__ = "hobbies"
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String, nullable=False)
description = db.Column(db.String)
student_id = db.Column(db.Integer, db.ForeignKey("students.id"), nullable=False)
现在在flask中,我有以下代码
import os
from flask import Flask, render_template, request
from models import *
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "postgresql://junaid:junaid@localhost:5432/UOB"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db.init_app(app)
现在我得到了表中所有的记录
from sqlalchemy.sql import select
with app.app_context():
a = Hobbies.query.all()
我想得到这样的结果
Hobby.ID、Hobby.title、Hobby.description、Student.name(过滤器为Hobby.Student\u ID=Students.ID)
我想打印嗜好表中的所有记录,简写学生姓名 这是解决方案。如果其他人可以从中受益,请分享
hobbies_with_stud = db.session.query(Students, Hobbies).join(Hobbies, Hobbies.student_id == Students.id).all()
for record in hobbies_with_stud:
print(record.Hobbies.title + " is the hobby of "+ record.Students.name)
这是解决办法。如果其他人可以从中受益,请分享
hobbies_with_stud = db.session.query(Students, Hobbies).join(Hobbies, Hobbies.student_id == Students.id).all()
for record in hobbies_with_stud:
print(record.Hobbies.title + " is the hobby of "+ record.Students.name)