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 ...
随机推荐
- (二)、Docker 快速入门
文档:https://docs.docker.com/install/linux/docker-ce/centos/ 中文文档:https://docs.docker-cn.com/engine/in ...
- 2021.8.9考试总结[NOIP模拟34]
T1 Merchant 如果$t=0$时不能达到$s$,那么所拿物品的价值一定关于时间单调递增,答案单调.因此可以特判$0$后二分. 用$sort$复杂度被卡,要用$\textit{nth_eleme ...
- 示波器分析I2C时序波形图
对于嵌入式开发的朋友来说,I2C协议实在是再熟悉不过了,有太多的器件,采用的都是通过I2C来进行相应的设置.今天,我们就随便聊聊这个I2C协议. I2C协议中最重要的一点是I2C地址.这个地址有7位和 ...
- 企业级BI为什么这么难做?
本人长期在银行内从事数据线相关工作,亲眼目睹过多个企业级BI(非部门级BI)产品从上线试用.全行推广.然后衰败没落,再替换到下一个BI产品重复此过程.企业内没有任何一个BI产品即能长期运行,又能赢得非 ...
- SprinMvc快速入门
1.spring mvc Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架. 查看官方文档:https://docs.spring.io/sp ...
- (转载)linux chmod命令用法
chmod----改变一个或多个文件的存取模式(mode) chmod [options] mode files 只能文件属主或特权用户才能使用该功能来改变文件存取模式.mode可以是数字形式(八 ...
- hdu 5170 GTY's math problem(水,,数学,,)
题意: 给a,b,c,d. 比较a^b和c^d的大小 思路: 比较log(a^b)和log(c^d)的大小 代码: int a,b,c,d; int main(){ while(scanf(" ...
- 王爽汇编第五章,[bx]和loop指令
目录 王爽汇编第五章,[bx]和loop指令 [bx]和loop指令 例子: 王爽汇编第五章,[bx]和loop指令 [bx]和loop指令 [bx]之前我们介绍寄存器的时候,已经很详细的说明过了,b ...
- Spring源码学习之容器的基本实现(一)
前言 最近学习了<<Spring源码深度解析>>受益匪浅,本博客是对学习内容的一个总结.分享,方便日后自己复习或与一同学习的小伙伴一起探讨之用. 建议与源码配合使用,效果更嘉, ...
- 字符编码之间的转换 utf-8 , gbk等,(解决中文字符串乱码)
目录 1.背景. 2.编码的理解 3.编码之间的相互转化 4. str类型说明 5. 可以使用的编码类型 6.参考文章 1.背景 Python中与其他程序进行交互时,如果存在字符串交互,特别是字符串中 ...