1. from weibo.models import WeiboUser as User
  2. user_obj = User.objects.get(pk=1)
  3. user_obj.pk
  4. Out[4]: 1
  5. user_obj.username
  6. Out[5]: '张三'
  7. user_obj.password
  8. Out[6]: '11111'

  1. list_all = User.objects.all()
  2. list_all
  3. Out[8]: <QuerySet [<WeiboUser: WeiboUser object>, <WeiboUser: WeiboUser object>]>
  4. for user in list_all:
  5. ...: print(user.username)
  6. ...: print(user.password)
  7. ...:
  8. 张三
  9. 11111
  10. quan
  11. 2222
  1. 通过get方法进行查询,得到的是一个具体的单个信息
  2. 使用all方法查询的出来的是一个结果集,不能直接得出信息
  3. 需要通过循环才能得到结果的具体信息

查询需要注意的东西是:

可能会出现异常,我们要进行异常的处理

  1. user = User.objects.get(pk=30)
  2. Traceback (most recent call last):
  3. File "D:\anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3331, in run_code
  4. exec(code_obj, self.user_global_ns, self.user_ns)
  5. File "<ipython-input-18-17983c9c8a02>", line 1, in <module>
  6. user = User.objects.get(pk=30)
  7. File "D:\anaconda\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
  8. return getattr(self.get_queryset(), name)(*args, **kwargs)
  9. File "D:\anaconda\lib\site-packages\django\db\models\query.py", line 380, in get
  10. self.model._meta.object_name
  11. weibo.models.DoesNotExist: WeiboUser matching query does not exist.
  1. try:
  2. ...: user = User.objects.get(pk=20)
  3. ...: except User.DoesNotExist as e:
  4. ...: print("error")
  5. ...:
  6. error

第二个异常:

注意:使用get语句不出现异常的前提是,数据库只有一条且是唯一的,没有记录不行,查询出多条记录也是会出现异常的

  1. from weibo.models import WeiboUser as User
  2. user_obj = User.objects.get(pk=1)
  3. user_obj.nickname
  4. Out[4]: '零零零零'
  5. user_obj.nickname = "全植强"
  6. user_obj.nickname
  7. Out[6]: '全植强'
  8. #####在这里之前,数据库都是没有进行数据的更改的,直到使用save的时候才会更改
  9. user_obj.save()

第一种办法:直接一条代码搞完

  1. user_list = User.objects.all().update(password='2020')
  1.  

第二种方法:

  1. user_list = User.objects.all()
  2. user_list.update(password = '1997')
  3. Out[11]: 2
  4. 最后输出的2代表的 是做出更改的数据的总数

注意:使用all这种方法进行数据的全部变更,最好再三确认,因为这可能是成百上千的数据更改

最好做以下数据的备份

  1. 通过查询方法get得到一个对象,再使用对象里面的delete方法
  1. from weibo.models import WeiboUser as User
  2. user_obj = User.objects.get(pk =1)
  3. user_obj.username
  4. Out[5]: '张三'
  5. user_obj.delete()
  6. Out[6]: (1, {'weibo.Commont': 0, 'weibo.Friend': 0, 'weibo.WeiboUser': 1})

  1. user_obj = User.objects.get(username='quan')
  2. user_obj.username
  3. Out[8]: 'quan'
  4. user_obj.status = 0
  5. user_obj.save()

python-django使用ORM模型增删改查CRUD的更多相关文章

  1. Python学习---django之ORM的增删改查180125

    模型常用的字段类型参数 <1> CharField        #字符串字段, 用于较短的字符串.        #CharField 要求必须有一个参数 maxlength, 用于从数 ...

  2. Django之ORM的增删改查

    一.添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name ="海东",cou ...

  3. Django的ORM基础增删改查

    查询 all() 返回模型类对应表格中所有数据,返回查询集 get() 返回表格中满足条件的一条且只能有一条数据 如果查到多条数据,则抛异常:MultipleObjectsReturned 查询不到数 ...

  4. Django之ORM的增删改查操作流程

    总结:ORM的 查.增.删.改 - 查 - client - 有一个展示页面(xxx_show.html) - 这一个页面一输入执行后,get请求向server端发送 - 这个展示页面有添加按钮.删除 ...

  5. Django之ORM数据库增删改查

    总结:ORM的 查.增.删.改 - 查 - client - 有一个展示页面(xxx_show.html) - 这一个页面一输入执行后,get请求向server端发送 - 这个展示页面有添加按钮.删除 ...

  6. Django ORM 数据库增删改查

    Django ORM 数据库增删改查 增 # 创建.增加数据(推荐) models.UserInfo.objects.create(username=') # 创建.增加数据 dic = {'} mo ...

  7. python学习之-成员信息增删改查

    python学习之-成员信息增删改查 主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证,#!/usr/bin/env p ...

  8. python manage.py shell 的增删改查

    python manage.py shell 的增删改查 guoguo-MacBook-Pro:myblog guoguo$ python manage.py shell Python 3.5.1 ( ...

  9. IDEA SpringBoot-Mybatis-plus 实现增删改查(CRUD)

    上一篇: IDEA SpringBoot-Mybatis实现增删改查(CRUD) 下一篇:Intellij IDEA 高效使用教程 (插件,实用技巧) 最好用的idea插件大全 一.前言 Mybati ...

随机推荐

  1. VS2015+OpenCV+Qt

    VS2015+OpenCV+Qt 01.OpenCV 下载 进入官网链接: https://opencv.org,下载所需要的版本: 下载完成后直接双击,选择解压路径,解压到响应的文件夹中: 若之后需 ...

  2. [敏捷软工团队博客]Beta阶段事后分析

    设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件要解决的问题是:现在的软工课程的作业分布在博客园.GitHub上,没有一个集成多种功能的一体化 ...

  3. Beta_Scrum Meeting_0

    日期:2021年5月26日 参会人员:cy.hcc.lsc.dxh 会议主题:为Beta阶段最早两日的开发制定目标 一.进度情况 组员 负责 两日内完成的任务 接下来两日预计完成的任务 hcc 前端 ...

  4. 升级MySQL8.0的历险记

    最近忙于Fighting的项目,所以笔耕有些松懈,实为不该. 刚好遇到需要从MySQL5.7.33升级到MySQL8.0.x的需求,于是记录一下整个升级过程,踩坑而过. 背景梗概:本地docker容器 ...

  5. 字符串与模式匹配算法(六):Needleman–Wunsch算法

    一.Needleman-Wunsch 算法 尼德曼-翁施算法(英语:Needleman-Wunsch Algorithm)是基于生物信息学的知识来匹配蛋白序列或者DNA序列的算法.这是将动态算法应用于 ...

  6. 看动画学算法之:双向队列dequeue

    目录 简介 双向队列的实现 双向队列的数组实现 双向队列的动态数组实现 双向队列的链表实现 双向链表的时间复杂度 简介 dequeue指的是双向队列,可以分别从队列的头部插入和获取数据,也可以从队列的 ...

  7. PHP笔记1__基础知识

    客户端: 美妙的网页组成(都是由浏览器解释): 1.HTML 2.CSS--给HTML化妆 3.客户端脚本编程语言(JavaScript等)--特效  服务器端: 1.Web服务器Apache/Ngi ...

  8. 难顶!面试官问我G1垃圾收集器

    面试官:要不这次来聊聊G1垃圾收集器? 候选者:嗯嗯,好的呀 候选者:上次我记得说过,CMS垃圾收集器的弊端:会产生内存碎片&&空间需要预留 候选者:这俩个问题在处理的时候,很有可能会 ...

  9. vue修改启动的端口和host

    打开vue项目(dev) dev/config/ 路径修改index.js文件 然后对host和pord修改指定的即可 host: 'localhost', // can be overwritten ...

  10. silky微服务业务主机简介

    目录 主机的概念 通用主机 web主机 业务主机类型 使用web主机构建微服务应用 使用通用主机构建微服务应用 构建具有websocket能力的微服务应用 构建网关 开源地址 在线文档 主机的概念 s ...