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的一个完整执行流程

相关推荐
mN9B2uk173 分钟前
数据库设计 Step by Step
数据库·oracle·数据库开发
abcy0712136 分钟前
oracle配置pdb账号密码图文教程
数据库·oracle
这个DBA有点耶9 分钟前
当时间数据不再只是“曲线”:聊聊时序数据库和融合分析
数据库·sql·程序人生·云原生·运维开发·时序数据库·业界资讯
小此方12 分钟前
Re:Mysql数据库基础篇(一):CentOS/Linux 环境下的完整安装/运行/登录Mysql流程与首次登录异常处理
linux·数据库·mysql
IvorySQL17 分钟前
PostgreSQL 技术日报 (6月4日)|SQL/PGQ 新特性,逻辑复制持续优化
数据库·sql·postgresql
IT空门:门主21 分钟前
MySQL MCP Server 从零安装到使用实战,AI 直接查询数据库
数据库·人工智能·mysql
minji...25 分钟前
MySQL数据库 (二) 库的操作(增删查改),库的字符集和校验集,数据库的备份与恢复
数据库·mysql数据库·字符集·库的增删查改·校验集·数据的备份·数据的恢复
Wonderful U26 分钟前
基于Python+Django的智能在线考试系统:从题库管理到自动阅卷的全流程实战
开发语言·python·django
前端与小赵30 分钟前
数据库交互全链路实战:通用封装、批量优化与动态查询三大核心模块
数据库·python·sql
霸道流氓气质35 分钟前
异步任务提交 + Redis 状态轮询模式实战指南
数据库·redis·缓存