Flask/SQLAlchemy 关系
Flask/SQLAlchemy Relationships
所以我正在阅读有关数据库关系的内容,对此我似乎感到困惑
下面是 Miguel Grinberg 在他的 blog
中的代码
from app import db
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
nickname = db.Column(db.String(64), index=True, unique=True)
email = db.Column(db.String(120), index=True, unique=True)
posts = db.relationship('Post', backref='author', lazy='dynamic')
def __repr__(self):
return '<User %r>' % (self.nickname)
class Post(db.Model):
id = db.Column(db.Integer, primary_key = True)
body = db.Column(db.String(140))
timestamp = db.Column(db.DateTime)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
def __repr__(self):
return '<Post %r>' % (self.body)
理解有误请指正
posts = db.relationship('Post', backref='author', lazy='dynamic')
posts
属性与 Post
模型有关系,但是 posts
属性变成了什么?一个领域?它可以包含什么?
backref
是什么意思?它被定义为 author
但 Models
中都没有 author
属性。
我查看了文档,而且任何新手都会有。我还是不太明白。
所以TL:DR
posts
会变成什么?
backref
是做什么的?
posts
是一个列表,您可以在 SQLAlchemy 中将其用作抽象来访问。 SQLAlchemy 会在您使用时将其转换为适当的 SQL 查询
(它表示有很多关系)
backref
- 提示 SQLAlchemy post
中的 属性 表明它实际上属于特定的 User
。在这种情况下是错误的(看博客底部的评论)应该是 user
所以我正在阅读有关数据库关系的内容,对此我似乎感到困惑
下面是 Miguel Grinberg 在他的 blog
中的代码from app import db
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
nickname = db.Column(db.String(64), index=True, unique=True)
email = db.Column(db.String(120), index=True, unique=True)
posts = db.relationship('Post', backref='author', lazy='dynamic')
def __repr__(self):
return '<User %r>' % (self.nickname)
class Post(db.Model):
id = db.Column(db.Integer, primary_key = True)
body = db.Column(db.String(140))
timestamp = db.Column(db.DateTime)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
def __repr__(self):
return '<Post %r>' % (self.body)
理解有误请指正
posts = db.relationship('Post', backref='author', lazy='dynamic')
posts
属性与 Post
模型有关系,但是 posts
属性变成了什么?一个领域?它可以包含什么?
backref
是什么意思?它被定义为 author
但 Models
中都没有 author
属性。
我查看了文档,而且任何新手都会有。我还是不太明白。
所以TL:DR
posts
会变成什么?
backref
是做什么的?
posts
是一个列表,您可以在 SQLAlchemy 中将其用作抽象来访问。 SQLAlchemy 会在您使用时将其转换为适当的 SQL 查询
(它表示有很多关系)
backref
- 提示 SQLAlchemy post
中的 属性 表明它实际上属于特定的 User
。在这种情况下是错误的(看博客底部的评论)应该是 user