python-django使用ORM模型增删改查CRUD
- from weibo.models import WeiboUser as User
- user_obj = User.objects.get(pk=1)
- user_obj.pk
- Out[4]: 1
- user_obj.username
- Out[5]: '张三'
- user_obj.password
- Out[6]: '11111'
- list_all = User.objects.all()
- list_all
- Out[8]: <QuerySet [<WeiboUser: WeiboUser object>, <WeiboUser: WeiboUser object>]>
- for user in list_all:
- ...: print(user.username)
- ...: print(user.password)
- ...:
- 张三
- 11111
- quan
- 2222
- 通过get方法进行查询,得到的是一个具体的单个信息
- 使用all方法查询的出来的是一个结果集,不能直接得出信息
- 需要通过循环才能得到结果的具体信息
查询需要注意的东西是:
可能会出现异常,我们要进行异常的处理
- user = User.objects.get(pk=30)
- Traceback (most recent call last):
- File "D:\anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3331, in run_code
- exec(code_obj, self.user_global_ns, self.user_ns)
- File "<ipython-input-18-17983c9c8a02>", line 1, in <module>
- user = User.objects.get(pk=30)
- File "D:\anaconda\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
- return getattr(self.get_queryset(), name)(*args, **kwargs)
- File "D:\anaconda\lib\site-packages\django\db\models\query.py", line 380, in get
- self.model._meta.object_name
- weibo.models.DoesNotExist: WeiboUser matching query does not exist.
- try:
- ...: user = User.objects.get(pk=20)
- ...: except User.DoesNotExist as e:
- ...: print("error")
- ...:
- error
第二个异常:
注意:使用get语句不出现异常的前提是,数据库只有一条且是唯一的,没有记录不行,查询出多条记录也是会出现异常的
- from weibo.models import WeiboUser as User
- user_obj = User.objects.get(pk=1)
- user_obj.nickname
- Out[4]: '零零零零'
- user_obj.nickname = "全植强"
- user_obj.nickname
- Out[6]: '全植强'
- #####在这里之前,数据库都是没有进行数据的更改的,直到使用save的时候才会更改
- user_obj.save()
第一种办法:直接一条代码搞完
- user_list = User.objects.all().update(password='2020')
第二种方法:
- user_list = User.objects.all()
- user_list.update(password = '1997')
- Out[11]: 2
- 最后输出的2代表的 是做出更改的数据的总数
注意:使用all这种方法进行数据的全部变更,最好再三确认,因为这可能是成百上千的数据更改
最好做以下数据的备份
- 通过查询方法get得到一个对象,再使用对象里面的delete方法
- from weibo.models import WeiboUser as User
- user_obj = User.objects.get(pk =1)
- user_obj.username
- Out[5]: '张三'
- user_obj.delete()
- Out[6]: (1, {'weibo.Commont': 0, 'weibo.Friend': 0, 'weibo.WeiboUser': 1})
- user_obj = User.objects.get(username='quan')
- user_obj.username
- Out[8]: 'quan'
- user_obj.status = 0
- user_obj.save()
python-django使用ORM模型增删改查CRUD的更多相关文章
- Python学习---django之ORM的增删改查180125
模型常用的字段类型参数 <1> CharField #字符串字段, 用于较短的字符串. #CharField 要求必须有一个参数 maxlength, 用于从数 ...
- Django之ORM的增删改查
一.添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name ="海东",cou ...
- Django的ORM基础增删改查
查询 all() 返回模型类对应表格中所有数据,返回查询集 get() 返回表格中满足条件的一条且只能有一条数据 如果查到多条数据,则抛异常:MultipleObjectsReturned 查询不到数 ...
- Django之ORM的增删改查操作流程
总结:ORM的 查.增.删.改 - 查 - client - 有一个展示页面(xxx_show.html) - 这一个页面一输入执行后,get请求向server端发送 - 这个展示页面有添加按钮.删除 ...
- Django之ORM数据库增删改查
总结:ORM的 查.增.删.改 - 查 - client - 有一个展示页面(xxx_show.html) - 这一个页面一输入执行后,get请求向server端发送 - 这个展示页面有添加按钮.删除 ...
- Django ORM 数据库增删改查
Django ORM 数据库增删改查 增 # 创建.增加数据(推荐) models.UserInfo.objects.create(username=') # 创建.增加数据 dic = {'} mo ...
- python学习之-成员信息增删改查
python学习之-成员信息增删改查 主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证,#!/usr/bin/env p ...
- python manage.py shell 的增删改查
python manage.py shell 的增删改查 guoguo-MacBook-Pro:myblog guoguo$ python manage.py shell Python 3.5.1 ( ...
- IDEA SpringBoot-Mybatis-plus 实现增删改查(CRUD)
上一篇: IDEA SpringBoot-Mybatis实现增删改查(CRUD) 下一篇:Intellij IDEA 高效使用教程 (插件,实用技巧) 最好用的idea插件大全 一.前言 Mybati ...
随机推荐
- 新型活跃Mozi样本分析报告
基本信息 对象 值 文件名 Photo.scr 文件类型 PE32 executable for MS Windows (GUI) Intel 80386 32-bit 文件大小 6271259 by ...
- csp-s 2021
T1 廊桥分配 当一架飞机抵达机场时,可以停靠在航站楼旁的廊桥,也可以停靠在位于机场边缘的远机位. 乘客一般更期待停靠在廊桥,因为这样省去了坐摆渡车前往航站楼的周折. 然而,因为廊桥的数量有限,所以这 ...
- stm32串口USART 硬件流控 --学习笔记
流控的概念源于 RS232 这个标准,在 RS232 标准里面包含了串口.流控的定义.大家一定了解,RS232 中的"RS"是Recommend Standard 的缩写,即&qu ...
- 疯狂Java基础Day2
巩固Java流程控制的学习... 一.用户交互Scanner 通过Scanner类获取用户的输入 import java.util.Scanner; public class Demo1 { publ ...
- 运用Tomcat创建第一个web项目
一.了解Web服务器软件 在部署tomcat前,先说一说web服务器软件是用来干什么的?简单来说,就是web容器,可以部署web项目,让用户通过浏览器来访问这些项目. 1.常见的javaweb服务器软 ...
- (转载)关于Linux C函数strtok的使用要点
今天遇到了处理字符串的问题,比如分割问题,但是一时间想不起来什么方法,也不想手写一个类似java String中的split函数,于是百度了一下,发现了strtok这个好用的方法,以此作为总结. st ...
- Java 在PPT中创建散点图
本文将以Java代码示例展示如何在PPT幻灯片中创建散点图表. 创建图表前 需要在Java程序中导入用于操作PPT的jar包 Free Spire.Presentation for Java.可参考如 ...
- 远程设备管理opendx平台搭建-server,agent以及front实际搭建
本系列文章讲述的是一个系列的第二部分,最终可以搭建一整套设备远程管理平台,与stf不同的是,opendx搭建较为简单,而且由于底层是appium来支持的,所以,较容易支持ios,也容易支持更高版本的安 ...
- ONVIF客户端中预置位设置代码实现过程
simpleOnvif的功能:提供支持Windows.Linux.arm.Android.iOS等各种平台的SDK库,方便集成,二次开发 之前跟大家分享了我们安徽思蔷信息科技的simpleOnvif的 ...
- Iceberg概述
背景 随着大数据领域的不断发展, 越来越多的概念被提出并应用到生产中而数据湖概念就是其中之一, 其概念参照阿里云的简介: 数据湖是一个集中式存储库, 可存储任意规模结构化和非结构化数据, 支持大数据和 ...