美文网首页
关于Flask-SQLAlchemy对关联数据表清除孤儿数据。

关于Flask-SQLAlchemy对关联数据表清除孤儿数据。

作者: Cichar | 来源:发表于2017-02-18 13:40 被阅读0次

一对多关系,User为一,Task为多。
一的一方通过relationship关联到多的一方,多的一方设置ForeignKey关联到一的一方。

relationship中设置cascade='all, delete-orphan' 与 passive_deletes = True,
ForeignKey中设置ondelete = 'CASCADE'。
即可完成删除User的同时,删除与该user对象相关的task对象。

例如:
user的id为1,同时任务列表中,任务id为1和2的两个任务的user_id为1,即user中id为1的用户拥有任务id为1和2的两个任务。通过删除id为1的user,任务表中id为1和2的两个task对象也会同时删除。

from . import db

class User(db.Model):
    __tablesname__ = 'users'
    
    id = db.Column(db.Integer, primary_key = True)
    username = db.Column(db.String(64), unique = True)

    tasks = db.relationship('Task', backref='user', lazy='dynamic', cascade='all, delete-orphan', passive_deletes = True)

    def __repr__(self):
        return '<User %r>' % self.username

class Task(db.Model):
    __tablesname__ = 'tasks'
    
    id = db.Column(db.Integer, primary_key = True)
    taskname = db.Column(db.String(64), unique = True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id', ondelete='CASCADE'))

    def __repr__(self):
        return '<Task %r>' % self.taskname

相关文章

  • 关于Flask-SQLAlchemy对关联数据表清除孤儿数据。

    一对多关系,User为一,Task为多。一的一方通过relationship关联到多的一方,多的一方设置Forei...

  • LitePal

    关于LitePal(github地址) 数据库相关(表关联):一对一:数据表根据外键进行关联(哪个表添加外键都可以...

  • MyBatis的关联映射(学习笔记)

      本文针对MyBatis的关联映射,重点在于:(1)不同的关联关系(一对一、一对多、多对多)如何创建数据表和在对...

  • Mysql的数据表删除操作

    1. 删除没有被关联的数据表 2. 删除被其他表关联的主表

  • ObjectBox 数据表关联

    数据表之间肯定要存在关联,例如一个学生可以有很多本书,这里就有一个 1 对 多的关联关系,在 ObjectBox ...

  • Flask学习(四)

    这次主要整理有关数据表关联的内容还有数据模型里面的一对多 创建两张表,文章的author_id关联到用户表的id字...

  • 公式 - 关联列

    上一讲,我们看到了如何定义页面数据,以及使用页面数据,但都是集中在查找的数据表本身的字段,如果要使用数据表关联的其...

  • 使用 Node 脚本清除 mysql 关联表中无效的数据

    转载自片段社区 Node 脚本清除 mysql 关联表中无效的数据

  • SQLAlchemy 数据表自关联

    我们说数据表关系时,默认说的是数据表之间的关系「一对多、一对一、多对多等等」。而在实际应用中常常会遇到数据表内的关...

  • Flask分页:基于flask-sqlalchemy和jinja

    摘要:Flask,flask-sqlalchemy,jinja2 flask-sqlalchemy获取分页数据 在...

网友评论

      本文标题:关于Flask-SQLAlchemy对关联数据表清除孤儿数据。

      本文链接:https://www.haomeiwen.com/subject/vewrwttx.html