1.新增(类似数据库操作的insert)

  1. # 新增
  2. #方式一:
  3. models.Category.objects.create(name='MySQL')
  4. #方式二:
  5. c = models.Category(name='Oracle')
  6. c.save()
  7.  
  8. models.Article.objects.create(
  9. title='orm学习',
  10. content='orm学习, content',
  11. category_id=2
  12. ) # 知道外键,id
  13.  
  14. category = models.Category.objects.get(id=3)
  15. models.Article.objects.create(
  16. title='orm学习2',
  17. content='orm学习2, content',
  18. category=category
  19. # category_id=category.id # category=category 这两行是等价的
  20. ) # 不知道外键,id

2.修改(类似数据库操作的update)

  1. # 修改
  2.  
  3. c = models.Category.objects.get(id=3)
  4. c.name = 'JAVA'
  5. c.save() # 修改单条数据
  6.  
  7. models.Category.objects.all().update(name='abc') # 修改全表的某个字段
  8.  
  9. # 按照某个条件修改
  10. models.Category.objects.filter(name='abc').update(name='ccc', age=15)

3.删除(类似数据库操作的delete)

  1. # 删除
  2. c = models.Category.objects.get(id=6)
  3. c.delete() # 删除某一条
  4.  
  5. models.Category.objects.all().delete() # 删除全表数据
  6.  
  7. # 按照某些条件删除
  8. models.Category.objects.filter(name='abc').delete()

4.查询(类似数据库操作的select) 

  1. # 简单查询
  2. result = models.Category.objects.all() # 查询所有的数据
  3. print(result)
  4. print(result.values())
  5. print(result.values_list())
  6. print(result.values('name')) # 根据某个字段的值过滤结果集
  7. print(result.values_list('name')) # 根据某个字段的值过滤结果集
  8. print(result.first()) # 获取结果集的第一个元素
  9. print(result.count()) # 获取结果集中结果个数
  10. result = models.Category.objects.get(id=1) # 获取单条结果
  11. print(result)
  12. # 复杂查询
  13. # 大于、小于、大于等于、小于等于、in 、not 、或
  14.  
  15. result = models.Article.objects.filter(read_count__gt=0) # 大于0
  16. print(result)
  17. result = models.Article.objects.filter(read_count__gte=0) # 大于等于0
  18. print(result)
  19. result = models.Article.objects.filter(read_count__lt=0) # 小于0
  20. print(result)
  21. result = models.Article.objects.filter(read_count__lte=0) # 小于等于0
  22. print(result)
  23. result = models.Article.objects.exclude(read_count=0) # 不等于 not
  24. print(result)
  25. result = models.Article.objects.filter(id__in=[1, 2, 3]) # in
  26. print(result)
  27. # 模糊查询
  28. result = models.Article.objects.filter(title__contains='orm') # like,包含某个字符串
  29. print(result)
  30. result = models.Article.objects.filter(title__icontains='orm') # like,忽略大小写包含某个字符串
  31. print(result)
  32. result = models.Article.objects.filter(title__endswith='xxx') # 以什么结尾
  33.  
  34. # 如果用get取单独1条数据时有报错风险,建议使用下面的代码,更健壮
  35. query_set = models.Article.objects.filter(id=5)
  36. if query_set:
  37. article = query_set.first()
  38. else:
  39. print('这条数据不存在')
  40.  
  41. # 多条件查询 or and
  42. # where read_count >0 or title like '%orm%'
  43. result = models.Article.objects.filter(Q(read_count__gt=0) | Q(title__contains='orm'))
  44. print(result)
  45. # where read_count >0 and title like '%orm%'
  46. result = models.Article.objects.filter(Q(read_count__gt=0) & Q(title__contains='orm'))
  47. print(result)
  48. result = models.Article.objects.filter(read_count=0,title='python06篇')
  49. print(result)
  50. # where read_count >0 and title not like '%orm%'
  51. result = models.Article.objects.filter(Q(read_count=0) & ~Q(title__contains='orm')) # ~放在Q()前代表Q的非
  52. print(result)

查询结果

  1. <QuerySet [<Category: python>, <Category: Linux>, <Category: JAVA>, <Category: apche>, <Category: MySQL>]>
  2. <QuerySet [{'id': 1, 'create_time': datetime.datetime(2020, 11, 18, 23, 5, 22, 413832), 'update_time': datetime.datetime(2020, 11, 18, 23, 5, 22, 413832), 'name': 'python'}, {'id': 2, 'create_time': datetime.datetime(2020, 11, 18, 23, 6, 14, 86852), 'update_time': datetime.datetime(2020, 11, 18, 23, 6, 14, 86852), 'name': 'Linux'}, {'id': 3, 'create_time': datetime.datetime(2020, 11, 18, 23, 6, 21, 743606), 'update_time': datetime.datetime(2020, 11, 29, 15, 12, 4, 149925), 'name': 'JAVA'}, {'id': 4, 'create_time': datetime.datetime(2020, 11, 18, 23, 33, 40, 410426), 'update_time': datetime.datetime(2020, 11, 18, 23, 33, 40, 410426), 'name': 'apche'}, {'id': 5, 'create_time': datetime.datetime(2020, 11, 29, 14, 59, 9, 537770), 'update_time': datetime.datetime(2020, 11, 29, 14, 59, 9, 537770), 'name': 'MySQL'}]>
  3. <QuerySet [(1, datetime.datetime(2020, 11, 18, 23, 5, 22, 413832), datetime.datetime(2020, 11, 18, 23, 5, 22, 413832), 'python'), (2, datetime.datetime(2020, 11, 18, 23, 6, 14, 86852), datetime.datetime(2020, 11, 18, 23, 6, 14, 86852), 'Linux'), (3, datetime.datetime(2020, 11, 18, 23, 6, 21, 743606), datetime.datetime(2020, 11, 29, 15, 12, 4, 149925), 'JAVA'), (4, datetime.datetime(2020, 11, 18, 23, 33, 40, 410426), datetime.datetime(2020, 11, 18, 23, 33, 40, 410426), 'apche'), (5, datetime.datetime(2020, 11, 29, 14, 59, 9, 537770), datetime.datetime(2020, 11, 29, 14, 59, 9, 537770), 'MySQL')]>
  4. <QuerySet [{'name': 'python'}, {'name': 'Linux'}, {'name': 'JAVA'}, {'name': 'apche'}, {'name': 'MySQL'}]>
  5. <QuerySet [('python',), ('Linux',), ('JAVA',), ('apche',), ('MySQL',)]>
  6. python
  7. 5
  8. python
  9. <QuerySet [<Article: orm学习2>, <Article: python基础篇03>, <Article: python基础篇01>]>
  10. <QuerySet [<Article: orm学习2>, <Article: orm学习>, <Article: python08>, <Article: python07>, <Article: python06>, <Article: python05>, <Article: python04>, <Article: python基础篇03>, <Article: python基础篇02>, <Article: python基础篇01>]>
  11. <QuerySet []>
  12. <QuerySet [<Article: orm学习>, <Article: python08>, <Article: python07>, <Article: python06>, <Article: python05>, <Article: python04>, <Article: python基础篇02>]>
  13. <QuerySet [<Article: orm学习2>, <Article: python基础篇03>, <Article: python基础篇01>]>
  14. <QuerySet [<Article: python基础篇03>, <Article: python基础篇02>, <Article: python基础篇01>]>
  15. <QuerySet [<Article: orm学习2>, <Article: orm学习>]>
  16. <QuerySet [<Article: orm学习2>, <Article: orm学习>]>
  17. <QuerySet [<Article: orm学习2>, <Article: orm学习>, <Article: python基础篇03>, <Article: python基础篇01>]>
  18. <QuerySet [<Article: orm学习2>]>
  19. <QuerySet [<Article: python06>]>
  20. <QuerySet [<Article: python08>, <Article: python07>, <Article: python06>, <Article: python05>, <Article: python04>, <Article: python基础篇02>]>

Django基础07篇 ORM操作的更多相关文章

  1. {Django基础六之ORM中的锁和事务}一 锁 二 事务

    Django基础六之ORM中的锁和事务 本节目录 一 锁 二 事务 一 锁 行级锁 select_for_update(nowait=False, skip_locked=False) #注意必须用在 ...

  2. day 71 Django基础六之ORM中的锁和事务

    Django基础六之ORM中的锁和事务   本节目录 一 锁 二 事务 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 锁 行级锁 select_for_update(no ...

  3. day 58 Django基础六之ORM中的锁和事务

      Django基础六之ORM中的锁和事务   本节目录 一 锁 二 事务 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 锁 行级锁 select_for_update( ...

  4. Django中的app及mysql数据库篇(ORM操作)

    Django常见命令 在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目.启动Django程序.创建新的APP.数据库迁移等. 创建Django项目 一把我们都 ...

  5. Django之Models与ORM操作

    一.models例子 from django.db import models class User(models.Model): """ 用户表 "" ...

  6. Django基础——Model篇(三)

    一 Django ORM中的概念 ORM —— 关系对象映射,是Object Relational Mapping的简写,是用来简化数据库操作的框架 Django ORM遵循Code Frist原则, ...

  7. 第六篇 ORM 操作大全

    阅读目录(Content) 一 对象关系映射ORM概念 二 Django连接MySQL 三modles.py创建表 常用字段 字段合集 字段参数 DateField和DateTimeField 四.关 ...

  8. Django基础-01篇

    一.Django介绍 flask,FastApi是轻量级服务端开发框架 Django是重量级服务端开发框架 ORM:封装了数据库操作 form:校验请求数据 安装Django: pip install ...

  9. Django/MySql数据库基本操作&ORM操作

    数据库配置: #第一步在settings里面 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbna ...

随机推荐

  1. 针对Spring MVC的Interceptor内存马

    针对Spring MVC的Interceptor内存马 目录 针对Spring MVC的Interceptor内存马 1 基础拦截器和调用流程的探索 1.1 基础拦截器 1.2 探索拦截器的调用链 1 ...

  2. Asp.Net Core Api 使用Swagger管理文档教程的安装与使用

    这周因为公司的需求需要我做一个Api的程序,这周的三天时间我一直在Core Api和 framework Api之间做纠结.不知道要使用哪一个去做项目,想着想着就决定了.既然两个我都没用过那个何不来使 ...

  3. 永远的Ace 实验四 团队作业1:软件研发团队组建

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST/ 这个作业要求链接 https://www.cnblogs.com/nwnu-da ...

  4. Camera噪声问题

    Camera噪声问题 Camera RGB 域的噪声 以上部分属于sensor processing,接下来的部分属于color.luminance processing. gamma gamma是在 ...

  5. NVIDIA GPU上的随机数生成

    NVIDIA GPU上的随机数生成 NVIDIA CUDA随机数生成库(cuRAND)提供高性能的GPU加速的随机数生成(RNG).cuRAND库使用NVIDIA GPU中提供的数百个处理器内核,将质 ...

  6. NVIDIA DRIVE AGX开发工具包

    NVIDIA DRIVE AGX开发工具包 英伟达drive AGX开发工具包提供了开发生产级自主车辆(AV)所需的硬件.软件和示例应用程序.NVIDIA DRIVE AGX系统建立在汽车产品级芯片上 ...

  7. 基于ARMv8的固件系统体系结构

    基于ARMv8的固件系统体系结构 The architecture of ARMv8-based firmware systems 自2011年发布以来,ARMv8处理器架构在移动设备市场上已经相当普 ...

  8. Django(56)Mixins工具集的使用

    前言 mixins翻译成中文是混入,组件的意思.在DRF中,针对获取列表,检索,创建等操作,都有相应的mixin,一般我们自定义创建的类视图都会继承自GenericAPIView和Mixins一起使用 ...

  9. 「题解」CF1468M Similar Sets

    本文将同步发布于: 洛谷博客: csdn: 博客园: 简书. 题目 题目链接:洛谷.CF1468M. 题意简述 给定 \(n\) 个集合 \(S_{1\sim n}\),问是否存在 \(i,j\) 满 ...

  10. fiddler操作详情

    1.设置fiddler请求过滤 2.请求与响应的格式内容  3.拦截请求操作 a.按F11开始拦截,发送请求 b.修改请求数据 c.SHIFT+F11关闭拦截 d.run to complete,把修 ...