Django如何创建表关系,Django的请求声明周期流程图

【1】表与表之间的关系

一对一
  • 左表的一条记录对应右表的一条记录,反之亦然
多对一
  • 左表的一条记录对应右表的多条记录,反之不成立
多对多
  • 左表的一条记录对应右表的多表记录,反之成立

【2】django中创建表关系

python 复制代码
class Book(models.Model):
    title = models.CharField(max_length=64)
    """
    max_digits=None,:总位数
    decimal_places=None:小数位数
    """
    # price decimal(8,2)
    price = models.DecimalField(max_digits=8, decimal_places=2)
    # publish_id = models.ForeignKey(to='Publish', to_field='id')
    """对于外键字段关系,会自动帮我们拼接_id"""
    publish = models.ForeignKey(to='Publish')
    """authors它是一个虚拟字段,它不会实际在表中创建出来这个字段,这一句可以自动帮助我们创建出来第三张表"""
    authors = models.ManyToManyField(to='Author')
"""出版社表"""
class Publish(models.Model):
    name = models.CharField(max_length=64)
    addr = models.CharField(max_length=64)


"""作者表"""
class Author(models.Model):
    name = models.CharField(max_length=64)
    author_detail = models.OneToOneField(to='AuthorDetail')

"""作者详情表"""
class AuthorDetail(models.Model):
    phone = models.CharField(max_length=64)
    email = models.CharField(max_length=64)

上面的代码是Django1.x版本的写法。Django2.x的版本有些许不同,需要在添加外键的时候手动加上级联删除(on_delete=models.CASCADE)

【3】Django的请求声明周期流程图

Django的请求生命周期流程图可以帮助我妈们熟练django的一个完整执行流程

相关推荐
刘天远9 分钟前
Agent系统接入编排:评分模型、状态机与Python门禁
数据库·人工智能·python
DBA_G26 分钟前
GBase数据库安全“全牌照“技术解读:从等保四级到全密态计算的实践
数据库
我滴老baby1 小时前
工业物联网数据库选型:把计算能力放回第一维度
数据库·人工智能·架构·pdf
Doris__HE1 小时前
【元脑服务器NF8260G7-NF8260M7技术规格分享】
运维·服务器·网络·数据库·性能优化
用户7531057124511 小时前
五年前我吐槽 PG 的 32 位 XID 是狗皮膏药,今天它被治好了
数据库
DBA_G1 小时前
从湖仓一体到AI原生:GBase数据库的金融全栈技术实践
数据库
ChenLuck2 小时前
32 位 XID 的“狗皮膏药”被撕掉了:金仓 V9 的 64 位事务号实测与底层拆解
数据库
旺仔不是程序员2 小时前
判断存在用 LIMIT 1:PostgreSQL 五种 count 计数方式与 NULL 语义
数据库·后端·sql
旺仔不是程序员2 小时前
IN 操作规范:PostgreSQL 元素数量、EXISTS 替代与 = ANY 写法
数据库·后端·sql
这个DBA有点耶2 小时前
异构数据集成方案:跨平台同步的完整指南与工具选型(含实测)
数据库·sql·程序人生·架构·数据库架构·dba