Django学习Day6

news2024/11/17 3:50:23

1.ORM故障处理

1)当执行python manager.py makemigrations出现迁移问题时,如何进行解决。在这里插入图片描述
处理方案:在models.py中,为book表的des非空字段设置一个默认值。

2)数据库的迁移文件混乱问题
数据库中的django_migrations记录了migrate的全过程,项目中各个应用中的migrate文件应该与之相对应,否则migrate会报错。
解决方案:

①删除migrations里所有的000?XXX.py,除了__init_.py
②删除数据库
Drop database demo1
③重新创建数据库
Create database demo1 default cha’rset utf8
④重新生成迁移文件
Python manager.py makemigrations
⑤重新更新数据库
Python manager.py migrate

在这里插入图片描述

2.ORM操作-创建数据

ORM的基本操作包括增删改查操作,也就是CRUD。
CRUD是指在做计算处理时,进行增加create、读取查询Read、更新update和删除delete。
ORM的CRUD的核心也就是模型类自带的管理器对象。

管理器对象
每个继承自models.Model的模型类,都会有一个objects的对象被同样继承下来,这个对象叫做管理器对象。
数据库的增删改查可以通过模型的管理器实现。

Class MyModel(models.Model):
	MyModel.objects.create()	#其中,objects是管理器对象。

创建数据
在使用orm创建数据时,每一条记录就是一个数据对象。
方案1:
MyModel.objects.create(属性1=值1,属性2=值2)
成功:返回创建好的实体对象
失败:抛出异常。

方案2:
创建MyModel的实例对象,并调用save()进行保存。
Obj = MyModel(属性1=值1,属性2=值2)
Obj.属性3 = 值
Obj.save()

Django Shell
在Django提供了一个交互式的操作项目叫Django Shell,它能够在交互模式中用项目工程的代码执行相应的操作。
利用Django Shell可以代替编写view的代码来进行直接操作。
(项目代码发生变化,需要重新启动shell)
启动方式:
Python manage.py shell

在这里插入图片描述

在shell中,对于studentapp应用程序中的models.py中的Student类的定义。
在这里插入图片描述

在shell中,使用student.objects.create进行数据插入。
在这里插入图片描述
并在数据库中检查是否成功插入数据:
在这里插入图片描述
意味着方案一能够成功的向数据库中新建数据。

接下来尝试使用方案二新建Teacher的数据。
在这里插入图片描述
在shell中实例化对象并调用save方法。
在这里插入图片描述
进入数据库select查看数据
在这里插入图片描述
数据已经成功的插入到了数据库中。
如果要对Teacher的对象数据进行修改,可以使用对象名.属性 = 值的方式直接对对象的内容进行修改,并通过save方式将数据保存到数据库中。
在这里插入图片描述
可以发现数据库中的数据已经发生了改变。
在这里插入图片描述
同样的,如果要进行删除数据,直接使用实例对象调用delete方法即可删除。
在这里插入图片描述
数据库中的数据已经被删除。
在这里插入图片描述

3.ORM操作-查询数据

通过MyModel.objects管理器方法调用查询方法
也是需要通过管理器对象进行。
方法:
all()
作用:查询全部记录,并返回一个querySet的查询对象
用法:MyModel.objects.all()
等同于:select * from table.
返回值为QuerySet的容器对象,内部存放了MyModel的实例。

实例:
继续插入两个数据到Studentapp中。
在这里插入图片描述

from studentapp import Student
Stu = Student.objects.all()
for s in Stu:
	print(s.name)

在这里插入图片描述
可以发现数据都成功的被取了出来。
在这里插入图片描述

对于.values方法,作用为:展示数据表中某一列的所有值。
在这里插入图片描述
对于.values_list方法,作用为会将查询出来的结果全部以元组的形式进行展示。
如果需要对查询出来的数据进行排序,那么需要使用order_by函数进行排序,该函数的参数为列名。默认为升序排序。
用法:
ClassName.objects.order_by(列名)
如果需要降序排序,则需要列名前增加“-”
在这里插入图片描述

对于QuerySet对象,可以无限叠加操作。
例如:在这里插入图片描述

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

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

相关文章

健康指标管理系统

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 模块划分:公告类型、公告信息、地区信息、用户信息、人员分类、人员信息、指标信息、健康信息 管理员功能&a…

Java+MYSQL基于ssm在线投票管理系统

随着社会的发展,人们在处理一些问题的时候不同意见越来越多,这源于人们对思想的解放和对社会的认识。所以在处理同一问题上,为了征求不同人的意见在线投票系统诞生了。 传统的投票模式都是通过人工手动填写问卷的方式来进行,这在很大程度上会造成人力和资源上的浪费。随着科技的…

擎创技术流 | ClickHouse实用工具—ckman教程(7)

​ ​一期一会的“ckman”教程又跟大家见面了,本期分享的重点主要针对上期后台陆续收到的问题展开,解答完问题后再带入一些关于“ckman”升级的相关讲解。感兴趣的朋友可以先关注一波。还是老规矩,先带大家复习下前几期的分享内容↓↓↓ 擎创…

springboot整合mongodb 保姆级教程

1、确保mongodb是否安装 Linux安装docker 保姆级教程_ 来杯咖啡的博客-CSDN博客&#xff08;可以看这篇文章&#xff09; 2、代码展示 2.1 使用 MongoTemplate 创建boot项目&#xff0c;导入架包。 <?xml version"1.0" encoding"UTF-8"?> <p…

带你深入了解一下vue.js中的this.$nextTick!

我们先看看nextTick究竟是个啥&#xff1f; console.log(this.$nextTick); // 控制台打印 if(fn){return nextTick(fn, this); } 我们可以看出nextTick就是一个方法&#xff0c;方法有两个参数&#xff1a;fn和this&#xff0c;fn就是需要传的回调函数&#xff0c;this就是所…

主轴承盖螺栓拧紧机PLC控制程序

HMI为西门子TP900触摸屏&#xff0c;支持屏幕触摸和按键操作 设备主要参数 设备外形尺寸&#xff1a;长*宽*高 2180*1900*2500mm 生产节拍&#xff1a; 55 S 电源电压&#xff1a; AC380V5%&#xff0c;50HZ&#xff0c;三相五线制 系统组态 常见故障处理 气缸报警 报警原…

Windows下安装VTK8.2.0

Windows下安装VTK8.2.0 1、依赖 VS2017 Qt5 cmake 2、前期准备 2.1、访问vtk官方下载VTK8.2.0源码 VTK源码下载地址&#xff1a;https://vtk.org/download/ 2.2、配置环境变量 配置CMAKE_PREFIX_PATH&#xff0c;值为Qt的bin路径 2.3、新建2个文件夹一个用于存放cm…

11 个有用的现代 JavaScript 技巧

在我们日常开发工作中&#xff0c;我们经常使用到字符串的转换、检查它是否存在的对象中的键、有条件地操作对象数据、过滤数组中的假值等。 在这里&#xff0c;我整理了一些很棒的JavaScript的技巧&#xff0c;这些技巧是我个人最喜欢的&#xff0c;因为它使我的代码更短更干…

亚马逊云科技:还在苦于ETL?Zero ETL的时代已全面到来

在2022亚马逊云科技re:Invent全球大会上&#xff0c;亚马逊云科技数据和机器学习副总裁Swami Sivasubramanian表示&#xff1a;“当前&#xff0c;客户管理的数据既庞大又复杂&#xff0c;这意味着他们不能只用单一技术或几个工具来分析和探索这些数据。在此次2022亚马逊云科技…

Java反射和new效率差距有多大?

1、创建对象的两种方式 //new 方式创建对象 ReflectDemo reflectDemo new ReflectDemo();//反射创建对象 反射创建对象的三种方式 (1)Class<ReflectDemo> reflectDemoClass ReflectDemo.class; (2)Class<?> aClass Class.forName ("com.whale.springtra…

网络ping不通,试试这8招

摘要&#xff1a;网络ping不通&#xff0c;该怎么办&#xff1f;本文教你8个大招&#xff0c;轻松找到问题根源。本文分享自华为云社区《网络ping不通&#xff0c;该怎么办&#xff1f;》&#xff0c;作者&#xff1a;wljslmz。 如下图&#xff0c;PC&#xff08;192.168.10.1…

使用windows系统给C盘分盘

前言 一般我们使用新电脑的时候&#xff0c;有的时候默认给我们分好了盘&#xff0c;有时候只会把全部的内存都放到C盘&#xff0c;这样就需要我们自己手动进行分配资源和分配其他硬盘资源 今天公司邮寄的新电脑到了&#xff0c;正好属于后者&#xff0c;借助这个机会分享下我…

【C语言进阶】六.预处理

&#xff08;1&#xff09;程序的翻译环境和执行环境 在ANSI C的任何一种实现中&#xff0c;存在两个不同的环境。 第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执行的机器指令。包含编译加链接第2种是执行环境&#xff0c;它用于实际执行代码。 &#xff08;2…

KingbaseES V8R6集群运维案例---数据块故障自动修复(auto_bmr)

案例说明&#xff1a; 在Oracle11.2版本之后&#xff0c;DataGuard 若搭建实时应用日志的物理备库&#xff0c;那么在主库数据文件少 量坏块的情况下&#xff0c;可以利用ABCR技术快速修复坏块。 Starting in Oracle Database 11g Release 2 (11.2), the primary database auto…

高通Ride软件开发包使用指南(12)

高通Ride软件开发包使用指南&#xff08;12&#xff09;9 PCIe交换机9.1简介9.2 PCIe交换机管理9.2.1工具9.2.2 COM端口和COM端口设置9.2.3更新固件和配置9.2.3.1工具设置9.2.3.2 Platform setup9.2.3.3交换机更新9 PCIe交换机 9.1简介 在Snapdragon Ride的高级配置中&#x…

四、基于kubeadm安装kubernetes1.25集群第三篇

接上篇&#xff1a;https://blog.csdn.net/u011837804/article/details/128355649 1、安装 kubeadm、kubelet 和 kubectl 1.1、配置yum源 cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernet…

算法| Java的int类型最大值为什么是21亿多?

开篇 本文主要介绍在Java中&#xff0c;为什么int类型的最大值为2147483647。 理论值 我们都知道在Java中&#xff0c;int 的长度为32位。 理论上&#xff0c;用二进制表示&#xff0c;32位每一位都是1的话&#xff0c;那么这个数是多少呢&#xff1f; 我们来计算一下&…

【QGIS入门实战精品教程】10.1:QGIS基于DEM数据的地形分析案例教程

本文讲解QGIS中基于DEM数据的地形分析方法,包括:坡度分析、坡向分析、山体阴影、地貌分析、强度指数(地形复杂性)。 文章目录 一、加载DEM二、坡度分析三、坡向分析四、山体阴影五、地貌分析六、强度指数(地形复杂性)QGIS提供了地形分析的工具,位于工具箱→Raster terrain a…

录屏怎么录声音?电脑录视频怎么带声音?图文教学来了

电脑录屏功能的应用&#xff0c;给我们的日常生活带来了便利。随着电脑录屏功能的应用&#xff0c;“电脑录屏”随着功能的升级&#xff0c;电脑屏幕录制不仅仅是简单的屏幕录制&#xff0c;还有很多额外的功能&#xff0c;比如录制带声音的视频&#xff01;那么录屏怎么录声音…

[C++]类和对象【下】

&#x1f941;作者&#xff1a; 华丞臧 &#x1f4d5;​​​​专栏&#xff1a;【C】 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎在评论区指出。 推荐一款刷题网站 &#x1f449;LeetCode 文章目录再谈构造…