【问题标题】:How to get data from two tables using SQLALCHEMY如何使用 SQLALCHEMY 从两个表中获取数据
【发布时间】:2020-04-25 13:23:42
【问题描述】:

假设我有一个模型

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)

现在在烧瓶中我有以下代码

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_id = Students.id)

我想打印 hobbies 表中的所有记录,并简写学生姓名。

【问题讨论】:

    标签: python orm sqlalchemy flask-sqlalchemy


    【解决方案1】:

    这里是解决方案。分享其他人是否可以从中受益。

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-14
      • 2015-04-19
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      相关资源
      最近更新 更多