11.10 知识总结(数据的增删改查、如何创建表关系、Django框架的请求生命周期流程图)

news2024/11/24 16:03:52

一、 数据的增删改查

    1.1 用户列表的展示

把数据表中得用户数据都给查询出来展示在页面上

 添加数据
    id            username        password         gender        age      action
                                                                修改  删除

    1.2  修改数据的逻辑分析

 1. 先确定修改哪条记录------>怎么样确定修改哪条记录?
 2. 通过什么字段可以确定唯一一条记录? 主键id,要携带主键id到后端.
 3. 在后端接收主键id值,然后根据这个id值再去表中查询数据,查询一条
 4. 然后把查询的数据在渲染到页面中,然后在修改
 5. 把修改之后的表单提交到后端,在做修改

    1.3  删除功能的分析

 1. 给删除按钮加一个链接,携带当前记录的id值
  2. 后端要接收这个主键id值
  3. 后端直接执行删除操作

 二、如何创建表关系(一对一,一对多,多对多)

"""
一对一
一对多
多对多
"""

我们以图书表、出版社表、作者表、作者详情表为例创建

# 判断表关系:换位思考法
分析表关系:
    图书表和出版社表是一对多的关系    >>> 外键如何创建:外键字段建在多的一方
    图书表和作者表是多对多的关系      >>>  外键如何创建:外键字段建在第三张表中
    """
        创建多对多的方式有3种方式,先将一种
        
    """
    作者表和作者详情是一对一的关系       >>>  外键如何创建:外键字段建在查询频率较高的一方
    
# 创建表关系字段先创建表的基础字段,先创建没有的外键的,最后在写外键字段

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了,它会自定的拼接_id"""
    publish = models.ForeignKey(to='Publish')  # 创建外键的 默认就是跟表的主键字段建立关系
    """
        authors:它是一个虚拟字段,意思是,在book表中不会实际创建出来这个字段,它能够创建出来第三张表(自动)
    """
    authors = models.ManyToManyField(to='Author', )


class Publish(models.Model):
    title = 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')
    
    
注意:
1.django1版本
on_delete
当删除关联表中的数据时,当前表与其关联的行的行为。

models.CASCADE
删除关联数据,与之关联也删除

models.DO_NOTHING
删除关联数据,引发错误IntegrityError

models.PROTECT
删除关联数据,引发错误ProtectedError

models.SET_NULL
删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空)

models.SET_DEFAULT
删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值)

models.SET
删除关联数据,
a. 与之关联的值设置为指定值,设置:models.SET(值)
b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)


2. django2
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了,它会自定的拼接_id"""
    publish = models.ForeignKey(to='Publish', on_delete=models.CASCADE)  # 创建外键的 默认就是跟表的主键字段建立关系
    """
        authors:它是一个虚拟字段,意思是,在book表中不会实际创建出来这个字段,它能够创建出来第三张表(自动)
    """
    authors = models.ManyToManyField(to='Author', )


class Publish(models.Model):
    title = 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',on_delete=models.CASCADE)


class AuthorDetail(models.Model):
    phone = models.CharField(max_length=64)
    qq = models.CharField(max_length=64)
 

三、 Django的请求生命周期流程图

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1202900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

9 个可以免费检索意外删除或丢失的文件的专业数据恢复软件

今天,我们将探索一些最佳数据恢复软件,它们可以帮助您从 Windows PC 或存储设备中检索意外删除或丢失的文件! 丢失数据或意外删除数据是一种令人不安的经历。值得庆幸的是,存在有效的解决方案来解决这种情况。今天,我…

从0到0.01入门React | 002.精选 React 面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

如何解决错误代码0x80070422,多种修复0x80070422的方法

在使用Windows系统,特别是Windows Update更新你的系统时,可能会遇到错误代码0x80070422。这是一个相对常见的问题,但不用担心,这个问题大多数情况下可以通过一些简单的步骤进行修复。 一.为什么会出现错误0x80070422 错误代码0x8…

本地生活直播的下个红利期来了!虚拟直播遇上本地生活擦出新火花

近年来,本地生活直播发展迅猛,作为一种全新的线下实体店营销方式,它比电商直播更贴近消费者的生活需求。比如消费者通过直播购买套餐或消费券,并在实体店核销。这种情况就可以归属于本地生活直播的服务范围。因此,对于…

Linux ____03、文件类型、属性、修改文件属性(更改文件权限)(命令)

文件类型、属性、修改文件属性 一、文件类型二、文件属性三、修改文件属性1、chgrp:更改文件属组2、chown:更改文件属主,也可以同时更改文件属组3、chmod:更改文件9个属性————————如觉不错,随手点赞&#xff…

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

利用ANSYS Electronics Desktop,可在综合全面、易于使用的设计平台中集成严格的电磁场分析和系统电路仿真。按需求解器技术让您能集成电磁场仿真器和电路及系统级仿真,以探索完整的系统性能。 HFSS(High Frequency Structure Simulator&#…

上门洗衣洗鞋app小程序

上门洗衣洗鞋app小程序作为专业的帮助用户洗衣服务的软件,许多朋友都使用过。在这里,小编就帮助大家收集一些非常不错的洗衣洗鞋软件。 不知道大家是否还在为洗衣而烦恼,而怕麻烦,现在大家都在用网上的洗衣洗鞋小程序来洗衣服,用户只需要打开手机软件,发起订单,门店即可收到订单…

[CANN训练营]UART通信笔记

文章目录 前言一、前提知识1.串行通信2.并行通信3.单工、半双工、全双工通信3.1单工通信3.2半双工通信3.3全双工通信 4.补充:通信速率 二、UART通信1.UART通信2.UART工作原理 总结 前言 在ROS学习中,我们在入门基础除了ROS的小乌龟外,在通信…

2019年五一杯数学建模A题让标枪飞解题全过程文档及程序

2020年五一杯数学建模 A题 让标枪飞 原题再现 标枪的投掷是一项历史悠久的田径比赛项目。标枪投掷距离的远近受到运动员水平(出手速度、出手角、初始攻角、出手高度、出手时标枪的初始俯仰角速度等),标枪的技术参数(标枪的长度、…

Docker的本地镜像发布到阿里云或者私有库步骤

学习笔记来源Docker 本地镜像发布到阿里云 1、生成镜像(使用commit命令) 创建阿里云仓库镜像 阿里云开发者平台 https://promotion.aliyun.com/ntms/act/kubernetes.html 创建仓库镜像 选择控制台,进入容器镜像服务 选择个人实例 命名空…

概率论和数理统计(三)数理统计基本概念

前言 “概率论”是给定一个随机变量X的分布F(x),然后求某事件A概率 P ( x ∈ A ) P(x \in A) P(x∈A)或者随机变量X的数字特征.“统计”是已知一组样本数据 { x 1 , x 2 , . . . x n } \{x_1,x_2,...x_n\} {x1​,x2​,...xn​},去求分布F(x) 统计的基本概念 在统计中&#x…

【MySQL】MySQL中的锁

全局锁 全局锁是对整个数据库实例加锁,整个库处于只读状态。 flush tables with read lock 适用场景 全局锁适用于做全库逻辑备份,但是整个库处于只读状态,在备份期间,所有的更新操作、DDL将会被阻塞,会对业务产生影…

python入门:分支结构

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 1.内容导图 2.流程图介绍 绘制要求:不能出现程序语言的语法 3.百分制转五级计分制 分支结构:语句块,冒号缩进表示归属 单分支…

CRM系统的销售管理功能,你了解多少?

很多时候,CRM系统直接被当做是销售管理系统,其实无可厚非,因为CRM系统本身是围绕销售逻辑来实现的,不仅可以有效的优化商机,对商机的把握也是十分精确。下面我们就来详细说说,CRM系统都有哪些销售管理功能&…

java语言开发B/S架构医院云HIS系统源码【springboot】

医院云HIS全称为基于云计算的医疗卫生信息系统( Cloud- Based Healthcare Information System),是运用云计算、大数据、物联网等新兴信息技术,按照现代医疗卫生管理要求,在一定区域范围内以数字化形式提供医疗卫生行业数据收集、存储、传递、…

快来看呦!制作3D翻页产品宣传册原来这么受欢迎!

制作3D翻页产品宣传册不但使产品在表达效果上看上去更为绚丽多彩,并且具备比较强的立体视觉效果,增加大家浏览观看的吸引力,而且还便于传播,短时间里增加品牌的影响力。 那么,我们应该如何制作3D翻页产品宣传册&#x…

如何显示标注的纯黑mask图

文章目录 前言一、二分类mask显示二、多分类mask显示 前言 通常情况下,使用标注软件标注的标签图看起来都是纯黑的,因为mask图为单通道的灰度图,而灰度图一般要像素值大于128后,才会逐渐显白,255为白色。而标注的时候…

springboot运维篇--springboot项目打包

1.springboot项目jar方式部署 直接使用idea 直接使用命令 跳过测试用例快速打包 mvn clean -D skipTests package将这个应用打成jar包,直接使用java-jar的命令执行 需要注意的是,需要 jar 命令行启动需要依赖 Maven 插件的支持,必须确认在…

23种设计模式 - 模板方法模式

1. 认识模板方法模式 1.1 模式定义 定义一个操作算法中的框架,而将这些步骤延迟加载到子类中。 它的本质就是固定算法框架。 1.2 解决何种问题 让父类控制子类方法的调用顺序 模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 1.3…