有两个班
class Authors(db.Model):
__tablename__ = 'authors'
id = db.Column('id', db.Integer, primary_key=True)
name = db.Column('name', db.String, nullable=False)
def __init__(self, name):
self.name = name
class Books(db.Model):
__tablename__ = 'books'
id = db.Column('id', db.Integer, primary_key=True)
isbn = db.Column('isbn', db.String, nullable=False)
title = db.Column('title', db.String, nullable=False)
author_id = db.Column('author_id', db.Integer,
db.ForeignKey('authors.id'), nullable=False)
year = db.Column('year', db.Integer)
def __init__(self, isbn, title, author_id, year):
self.isbn = isbn
self.title = title
self.author_id = author_id
self.year = year
我想提出一个请求,但是在访问该元素时books=Books.query.all()我能达到什么Authors.namebooks
例如,我可以使用 books[x].title 获得书名,但我如何获得Authors.name?
我了解需要什么join,但我无法弄清楚语法,我看到了很多示例 for sqlalchemy,但不是 forflask-sqlalchemy
我不想要这样的语法db.session.query(Books,Authors).join()...
答案是通过
joinedload为此,有必要添加
并提出一个请求
Books.query.options(joinedload('authors'))