栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Flask学习与项目实战6:一对多关系实现

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Flask学习与项目实战6:一对多关系实现

表关系:

一对一、一对多、多对多关系

一、外键

SQLAlchemy中可以使用外键。通过ForeignKey类来实现,并且可以指定表的外键约束。代码如下:

class Article(base):
    __tablename__ = 'article'
    id = Column(Integer,primary_key=True,autoincrement=True)
    title = Column(String(50),nullable=False)
    content = Column(Text,nullable=False)
    uid = Column(Integer,ForeignKey('user.id'))

    def __repr__(self):
        return "" % self.title

class User(base):
    __tablename__ = 'user'
    id = Column(Integer,primary_key=True,autoincrement=True)
    username = Column(String(50),nullable=False)

其中外键约束有:

1、RESTRICT:父表数据被删除,会阻止删除。默认就是这一项。
2、NO ACTION:在MySQL中,同RESTRICT。
3、CASCADE:级联删除。
4、SET NULL:父表数据被删除,子表数据会设置为NULL。

未通过relationship绑定关系,直接使用外键

使用relationship实现表关系

backref : 反向引用,第二个参数:代表对方访问我的时候的字段名称

截图中的articles是因为 通过用户可以拿到许多文章 即 一对多关系。


同时注意使用relationship的时候,这个表已经设置好了外键的。


写一个函数进行实验上述代码:即把user直接通过author绑定了关系。

使用反向引用代码示例:在这里增加了两篇文章,但是作者是同一个人,所以可以通过user.articles查看其下有多少篇文章,这就是为什么articles要加s。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/738269.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号