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的更多相关文章

  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. Noip模拟32(再度翻车) 2021.8.7

    T1 Smooth 很水的一道题...可是最傻    的是考场上居然没有想到用优先队列优化... 上来开题看到这个,最一开始想,这题能用模拟短除法,再一想太慢了,就想着优化 偏偏想到线性筛然后试别的素 ...

  2. Linux C语言链表你学会了吗?

    链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用.链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节 ...

  3. Nginx(三):Linux环境(Ubuntu)下Nginx的安装

    Nginx 是一位俄罗斯人 Igor Sysoev(伊戈尔·塞索斯夫)编写的一款高性能HTTP和反向代理服务器. Nginx 主要是有C编写的,安装Nginx需要GCC编译器(GNU Compiler ...

  4. 【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑

    编写Java Spring Boot应用,通过配置logging.path路径把日志输出在指定的文件夹中. 第一步:通过VS Code创建一个空的Spring Boot项目 第二步:在applicat ...

  5. 全面!总结BQ系列阻抗跟踪电量计化学Chemical ID配置和Golden学习方法

    BQ系列阻抗跟踪电量计SOC最高能达到1%,功能强大,应用起来也比较复杂.不仅要配置好参数,匹配好化学ID,并且进行好Golden学习和相关测试.本文就讲述ID匹配,Golden学习和测试的终极方法流 ...

  6. etcd安装常用操作

    etcd安装 etcd 是基于 Raft 的分布式 key-value 存储系统,由 CoreOS 开发,常用于服务发现.共享配置以及并发控制(如 leader 选举.分布式锁等).kubernete ...

  7. Java测试开发--Java基础知识(二)

    一.java中8大基本类型 数值类型:byte.short.int .float.double .long 字符类型:char 布尔类型:boolean 二. 封装:将属性私有化,不允许外部数据直接访 ...

  8. 关于React采坑(憨批)系列---类组件(class MyCom extends React.Component--VM47:9 Uncaught TypeError: Super expression must either be null or a function, not undefined)

    今天在学习React中的类组件时,突然给我报错VM47:9 Uncaught TypeError: Super expression must either be null or a function ...

  9. grep命令详解与正则表达式

    grep命令主要是做什么的呢 ?下面我们就来研究下. grep命令简单来说就是"过滤".就是把想看的数据通过grep过滤出来,把不想看的通过grep过滤掉. 它是一种强大的文本搜索 ...

  10. java中lamda表达式用法

    map-> list Map<String, Object> map = new HashMap<>(); List<String> list = new A ...