当前位置: 首页 > wzjs >正文

php mysql网站开发全程实例 下载百度账号申诉

php mysql网站开发全程实例 下载,百度账号申诉,怎么做网站设计程序,做资讯的网站第三篇:Django创建表关系及生命周期流程图 文章目录 第三篇:Django创建表关系及生命周期流程图一、Django中orm创建表关系一、数据库中的表关系二、创建表 二、Django请求生命周期流程图 一、Django中orm创建表关系 一、数据库中的表关系 我们可以通过…

第三篇:Django创建表关系及生命周期流程图

文章目录

  • 第三篇:Django创建表关系及生命周期流程图
    • 一、Django中orm创建表关系
      • 一、数据库中的表关系
      • 二、创建表
    • 二、Django请求生命周期流程图

一、Django中orm创建表关系

一、数据库中的表关系

我们可以通过换位思考来理解数据表之间的关系,表关系如下所示。

"""
表与表之间的关系一对多多对多一对一没有关系
判断表关系的方法:换位思考
"""

我们先简单建立几张表,然后判断各个表之间的关系。

分别为图书表、作者表、出版社表、作者详情表【未画出】。我们逐个分析个表之间的关系,我们发现。

图书和出版社是一对多的关系 外键字段建在多的那一方 book
图书和作者是多对多的关系 需要创建第三张表来专门存储
作者与作者详情表是一对一

二、创建表

创建表关系,先将基表创建出来,然后再添加外键字段,且不用考虑先创建被关联表。

  1. 图书表

    class Book(models.Model):# 书名title = models.CharField(max_length=32)# 价格:总共八位 小数点后面占两位price = models.DecimalField(max_digits=8,decimal_places=2)# 外键:【一对多】图书和出版社是一对多 并且书是多的一方 所以外键字段放在书表里面publish = models.ForeignKey(to='Publish')  # 默认就是与出版社表的主键字段做外键关联# 外键:【多对多】图书和作者是多对多的关系 外键字段建在任意一方均可 但是推荐你建在查询频率较高的一方authors = models.ManyToManyField(to='Author')"""注意:authors是一个虚拟字段 主要是用来告诉orm 书籍表和作者表是多对多关系,让orm自动帮你创建第三张关系表。"""
    

    注意:

    """
    1、如果字段对应的是ForeignKey那么会orm会自动在字段的后面加_id
    2、如果你自作聪明的加了_id那么orm还是会在后面继续加_id
    """
    所以,后面在定义ForeignKey的时候就不要自己加_id
    
  2. 出版社表

    class Publish(models.Model):name = models.CharField(max_length=32)addr = models.CharField(max_length=32)
    
  3. 作者表

    class Author(models.Model):name = models.CharField(max_length=32)age = models.IntegerField()# 外键:【一对一】作者与作者详情是一对一的关系 外键字段建在任意一方都可以 但是推荐你建在查询频率较高的表中detail = models.OneToOneField(to='AuthorDetail')"""OneToOneField也会自动给字段加_id后缀,所以你也不要自作聪明的自己加_id"""
    
  4. 作者详情表

    class AuthorDetail(models.Model):# 注意BigIntegerFieldphone = models.BigIntegerField()  # 或者直接字符类型addr = models.CharField(max_length=32)
    
  5. 创建效果如下

我们进一步分析,打开app01_book,我们发现自动创建了主键字段id,同时给关联外键的字段publish自动添加了后缀,变成了publish_id。【此关系为多对一】

打开app01_author,我们发现给detail添加了后缀,变成了detail_id。【此关系为一对一】

打开app01_book_author,我们发现也自动添加了后缀。【此关系为多对多】

总结:

"""orm中如何定义三种关系?"""# 默认就是与出版社表的主键字段做外键关联
publish = models.ForeignKey(to='Publish')  
# 默认就是id之间建立外键关系
authors = models.ManyToManyField(to='Author') 
# 默认就是id之间建立外键关系
detail = models.OneToOneField(to='AuthorDetail')"""ForeignKey、OneToOneField、ManyToManyField会自动在字段后面加_id后缀"""

补充:

# 在django1.X版本中外键默认都是级联更新删除的
# 多对多的表关系可以有好几种创建方式 这里仅为其中一种
# 针对外键字段里面的其他参数 暂时不要考虑

二、Django请求生命周期流程图

补充:

缓存数据库:提前已经将你想要的数据准备好了 你来直接拿就可以,提高效率和响应时间。
案例:当你在修改你的数据的时候 你会发现数据并不是立刻修改完成的而是需要经过一段时间才会修改【博客园】
http://www.dtcms.com/wzjs/801099.html

相关文章:

  • 网站源码和模板关键词歌词打印
  • 网站背景视频是怎么做的深圳网站建设deyond
  • 环保网站怎么做东营住房和城乡建设厅官网
  • 湖州市吴兴区建设局网站网络系统定级备案
  • 网站建设找谁中国十大it培训机构排名
  • 各大网站怎么把世界杯做头条网站建设的基本流程包括哪些
  • 我的世界做弊端网站华为弹性云服务器创建wordpress
  • 沧州南皮网站建设下载公众号平台app
  • 网站备案的意思wordpress手机后台
  • 工业设计招聘信息网站做爰全程的网站
  • 简单php企业网站源码做seo的公司
  • 黑龙江做网站哪家好百度贴吧有没有做网站的人
  • 设计作品欣赏网站上海十佳装修公司排名
  • 做自媒体发视频用哪些网站网络公司需要什么资质
  • 企业速成网站网站建设有什么好的介绍
  • 网站 被攻击主业篡改 被黑了 织梦做的站wordpress系统和插件下载
  • 网站定位方案做耳鼻喉医院网站多少钱
  • 网站建设是基于ps做网站如何
  • 潍坊网站收录哪个网站做的系统好用吗
  • 龙华做棋牌网站建设哪家公司便宜网站程序制作软件
  • 加大网站建设力度做网站如何选择颜色
  • 网站的发展趋势wordpress编辑页面模板
  • 石嘴山住房和城乡建设厅网站苏州seo网站推广公司
  • 微信小程序开发者中心百度关键词优化排名
  • 营销外贸网站建设案例wordpress logo制作教程
  • 网页导航网站设计网站建设色
  • 红黑配色网站的网站设计案例
  • 宁晋seo网站优化排名新网站seo方法
  • 阿里云网站备案时间网站投放广告赚钱吗
  • hk网站域名帝国cms做下载网站