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 "<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、RESTRICT:父表数据被删除,会阻止删除。默认就是这一项。

2、NO ACTION:在MySQL中,同RESTRICT。

3、CASCADE:级联删除。

4、SET NULL:父表数据被删除,子表数据会设置为NULL。

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

使用relationship实现表关系

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


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

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

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

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


相关文章
|
2月前
|
API 数据库 Python
二、学习 Flask之二
二、学习 Flask之二
40 0
|
7月前
|
人工智能 前端开发 算法
Python 潮流周刊#18:Flask、Streamlit、Polars 的学习教程
Python 潮流周刊#18:Flask、Streamlit、Polars 的学习教程
119 4
|
API 数据库 网络架构
Python Flask框架学习教程
概述: 本教程将介绍Python Flask框架的基础知识和使用方法。Flask是一个简单而灵活的Web应用框架,它具有轻量级、易用性和高度可扩展等特点。通过学习本教程,您将能够了解Flask的基本概念、安装方法、语法结构、模板使用以及实际案例,并通过练习题加深对框架的理解和应用。
|
Python
python学习之Flask框架(二)
python学习之Flask框架(二)
|
前端开发 Python
python学习之Flask框架(一)
前言:本人广西医科大学公共事业管理专业大二学生,大一开始自学python,大一期末报名了python课程学习,目前学习到flask框架(因为高中文科生和英语不太行的缘故,学习进度较慢),前面的笔记都是手写,后续笔记将会在csdn上传,希望能够记录下自己的成长过程,也希望各位社区大佬能够多多指点。
|
前端开发 Python
Flask学习与实战11:WebSocket的使用与简单通信
用这个协议最方便的就是,服务器主动向客户端推送信息。客户端也可以主动向服务器发送信息。属于应用层协议,在握手阶段还是使用了HTTP的协议。
Flask学习与实战11:WebSocket的使用与简单通信
|
数据库 Python
|
数据库 数据安全/隐私保护 Python
Flask学习与项目实战9:WTF表单验证
Flask-WTF是简化了WTForms操作的一个第三方库。WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板。当然还包括一些其他的功能:CSRF保护,文件上传等。安装Flask-WTF默认也会安装WTForms,因此使用以下命令来安装Flask-WTF: pip install flask-wtf。
Flask学习与项目实战9:WTF表单验证
|
存储 安全 数据安全/隐私保护
Flask学习与项目实战8:cookie与session的介绍与使用
cookie:在最开始的网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。c
Flask学习与项目实战8:cookie与session的介绍与使用
|
数据库 Python
Flask学习与项目实战7:一对一关系、管理表的映射与ORM、项目重构
上篇文章中提到了一对多关系, 也就是一个user对应多篇文章,这是一对多的关系,那么如何设置一对一的关系呢。
Flask学习与项目实战7:一对一关系、管理表的映射与ORM、项目重构