Flask学习与项目实战6:一对多关系实现
【摘要】
表关系:
一对一、一对多、多对多关系
一、外键
SQLAlchemy中可以使用外键。通过ForeignKey类来实现,并且可以指定表的外键约束。代码如下:
class Article(Base):...
表关系:
一对一、一对多、多对多关系
一、外键
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 "<Article(title:%s)>" % self.title
class User(Base):
__tablename__ = 'user'
id = Column(Integer,primary_key=True,autoincrement=True)
username = Column(String(50),nullable=False)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
其中外键约束有:
1、RESTRICT:父表数据被删除,会阻止删除。默认就是这一项。
2、NO ACTION:在MySQL中,同RESTRICT。
3、CASCADE:级联删除。
4、SET NULL:父表数据被删除,子表数据会设置为NULL。
未通过relationship绑定关系,直接使用外键
使用relationship实现表关系
backref : 反向引用,第二个参数:代表对方访问我的时候的字段名称
截图中的articles是因为 通过用户可以拿到许多文章 即 一对多关系。
同时注意使用relationship的时候,这个表已经设置好了外键的。
写一个函数进行实验上述代码:即把user直接通过author绑定了关系。
使用反向引用代码示例:在这里增加了两篇文章,但是作者是同一个人,所以可以通过user.articles查看其下有多少篇文章,这就是为什么articles要加s。
文章来源: blog.csdn.net,作者:洲的学习笔记,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_51484460/article/details/122747769
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)