繁体   English   中英

Flask / SQLAlchemy关系

[英]Flask/SQLAlchemy Relationships

所以我在阅读有关数据库关系的文章,对此我似乎感到困惑

以下是Miguel Grinberg在他的博客中的代码

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属性。

我调查了文档,发现任何newb都会拥有它。 我还是不太明白。

所以TL:DR

posts变成什么?

backref什么作用?

posts是您可以在SQLAlchemy中用作抽象访问的列表。 使用时,SQLAlchemy会将其转换为适当的SQL查询(表示具有很多关系)

backref提示SQLAlchemy post中的属性指示它实际上属于特定的User 在这种情况下,这是一个错误(请查看博客底部的评论),并且应该是user

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM