SQLAlchemy外键约束

本文介绍了如何在SQLAlchemy中添加外键约束,以实现文章与作者之间的多对一关系,以及如何建立映射关系,使得Article类能引用Users类的ID,并通过backref在Users类上创建一个文章列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加外键

  1. db.ForeignKey(‘users.id’)
  2. article 依赖于author
  3. 文章与作者是多对一 多方引用少方的ID作为外键
db = SQLAlchemy(app)

class Users(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(100), nullable=False)

class Article(db.Model):
    __tablename__ = "article"
    id =db.Column(db.Integer,primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)
    author_id = db.Column(db.Integer, db.ForeignKey('users.id'))

添加映射关系

  1. 给Article添加一个author对象属性
  2. 通过backref相当于给Users添加一个articles 文章对象列表
author = db.relationship('Users',backref=db.backref('articles'))
--解释:
    这是添加到Article模型中的属性
    参数Users是模型名称而不是数据库表名
    参数articles可以理解为添加在Users模型中的Article对象列表的名称  为了可读性更好起名articles,也可以起别的名字
    从Java的ORM框架MyBatis使用的模型类角度来理解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值