django-数据库的增删改查操作


1.添加用户记录

  1. def login(request):
  2. 增加用户记录 使用save()方法来增加记录
  3. username = UserInfo(username='tom', password='123')
  4. username.save()

2.使用遍历方法创建用户信息

  1. user = {'username': 'wangwang', 'password': '1234'}
  2. UserInfo.objects.create(**user)

3.增加用户方法2

  1. UserInfo.objects.create(username='wangwei', password='111')
  2. 批量插入 嵌套create方法在shell中执行
  3. UserInfo.objects.create(UserInfo.objects.create(username='wangjian', password='222'),
  4. UserInfo.objects.create(username='wanghui', password='222'),
  5. UserInfo.objects.create(username='wanglong', password='222'))

4.批量插入方法2

  1. UserInfo.objects.bulk_create([UserInfo(username='huihui', password='222'),
  2. UserInfo(username='dongmao', password='222'),
  3. UserInfo(username='zhouzhou', password='222'),
  4. UserInfo(username='dongmao1', password='222'),
  5. UserInfo(username='zhouzhou1', password='222')
  6. ])

6. 修改用户记录 先查看是否有该字段,然后调用字段直接进行修改

  1. user = UserInfo.objects.get(userid=1)
  2. print(user)
  3. user.password = '3333'
  4. user.save()

7. 删除用户记录 使用delete方法删除指定行

  1. user = UserInfo.objects.get(userid=2)
  2. print(user, type(user))
  3. if user:
  4. user.delete()

8.批量删除多条记录

  1. users = UserInfo.objects.filter(userid__gte=2)
  2. print(users)
  3. users.delete()

9.数据查询

  1. firstname = ["张", "李", "郑", "吴", "赵", "周", "王"]
  2. lastname = ["建军", "建辉", "建业", "建党", "建国"]
  3. users = []
  4. for name in range(100):
  5. username = firstname[randint(0, 6)] + lastname[randint(0, 4)]+str(randint(0, 10000))
  6. users.append(UserInfo(username=username, password=str(randint(11111, 999999))))
  7. UserInfo.objects.bulk_create(users)
  8. return HttpResponse("批量查询")

10.使用过滤器查询数据

  1. def query(request):
  2. # all过滤器查询所有数据
  3. users = UserInfo.objects.all()
  4. print(users)
  5. return render(request, 'index.html', locals())
  6. # filter 过滤器 条件查询
  7. users = UserInfo.objects.filter(userid__gt=100).filter(userid__lt=200)
  8. print(users)
  9. return render(request, 'index.html', locals())

11.def curd(request):

  1. # 数据查询
  2. user = UserInfo()
  3. user.username = '王辉'
  4. user.password = '2222222'
  5. user.save()
  6. return HttpResponse("CURD")

12.数据排序 使用order_by()方法进行排序

  1. [:number]切片取第前number条记录
  2. def order(request):
  3. data = UserInfo.objects.order_by('username')
  4. for user in data:
  5. print(user.username)
  6. return HttpResponse("排序")

13.查询指定字段

  1. def curd(request):
  2. data = UserInfo.objects.all().values('username')
  3. for user in data:
  4. print(user)

14.去除查询中重复字段

  1. def distinctview(request):
  2. data = UserInfo.objects.all().values("password").distinct()[:10]
  3. print(data)

15.反序 使用reverse方法

  1. def fx(request):
  2. data = UserInfo.objects.order_by('userid').reverse()
  3. print(data)
  4. return HttpResponse("curd")

16.非过滤器查询方法

  1. def process_query(request):
  2. get方法只能返回一条记录
  3. user = UserInfo.objects.get(userid=100)
  4. print("111")
  5. print(user)

17.使用first方法返回一个对象

  1. user = UserInfo.objects.first()
  2. print(user)

18.返回最后一个对象 使用last()方法

  1. user = UserInfo.objects.last()
  2. print(user)

19.查询结果集中的记录数目

  1. num = UserInfo.objects.filter(userid__gte=17).count()
  2. print(num)

20.判断结果集是否为空

  1. flag = UserInfo.objects.filter(userid__lt=17).all().exists()
  2. print(flag)
  3. return HttpResponse("非过滤器查询方法")
  4. """
  5. 关系运算符的表达式的使用
  6. >= 字段__get=num
  7. > 字段__gt=num
  8. < 字段__lt=num
  9. <= 字段__lte=num
  10. == 字段=num
  11. != 字段__ne=num
  12. """

21.多个条件查询的逻辑与连接,查询出大于等于100小于200的用户

  1. user = UserInfo.objects.filter(userid__lt=200, userid__gte=100)
  2. print(user)

22.集合查询

  1. data = UserInfo.objects.filter(userid__in=[17, 18, 19])
  2. print(data)

23.查询字段是否为空

  1. data = UserInfo.objects.filter(username__isnull=True)
  2. print(data)

24.字符串操作查询

  1. # __startwith以什么字符串开头的所有字段
  2. data = UserInfo.objects.filter(username__startswith='张')
  3. for user in data:
  4. print(user)

25.使用正则表达式匹配查询 使用————reges方法

  1. data = UserInfo.objects.filter(username__regex=r'3$')
  2. print(data)

26.日期查询操作

  1. data = UserInfo.objects.filter(regtime__year=2021)
  2. print(data)
  3. return HttpResponse("多条件的逻辑与查询")

27.统计查询

  1. def group(request):
  2. #查询最大userid
  3. userid = UserInfo.objects.aggregate(Max('userid'))
  4. print(userid)
  5. # 查询最小值userid
  6. userid = UserInfo.objects.aggregate(Min('userid'))
  7. print(userid)
  8. # 统计分组查询
  9. data = UserInfo.objects.values('username').annotate(Count('userid')).filter(userid=30)
  10. print(data)
  11. return HttpResponse("统计查询")

django-数据库的增删改查操作的更多相关文章

  1. PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码

    PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...

  2. python web.py操作mysql数据库,实现对数据库的增删改查操作

    使用web.py框架,实现对mysql数据库的增删改查操作: 该示例代码中连接的是本地数据库testdb,user表,表结构比较简单,只有两个字段:mobile和passwd,类型均为字符型 实际应用 ...

  3. TP5.1:数据库的增删改查操作(基于面向对象操作)

    我们现实中对数据库的增删改查操作,都是使用模型类进行操作的(表名::),也就是面向对象操作,只有底层的代码用的是数据库操作(Db::table('表名')) 下面我将贴出模型类进行的增删改查操作,通过 ...

  4. 通过jdbc连接MySql数据库的增删改查操作

    一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...

  5. TP5.1:数据库的增删改查操作(基于数据库操作)

    1.在app/index/controller文件夹下创建一个文件,名为:Operation 注意:起名一定要避开关键字,例如:mysql,curd等等,如果使用关键字起名,会造成报错! 在Opera ...

  6. Django中ORM对数据库的增删改查操作

         前言 什么是ORM?  ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在 ...

  7. greendao对SQLite数据库的增删改查操作

    利用greendao操作数据库时,都是以对象或者对象的list来进行增删改查的操作,操作的结果都是用一个list来接收的!!! 1.增加一条记录 Stu stu01=new Stu();stu01.s ...

  8. nodejs对mongodb数据库的增删改查操作(转载)

    首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-l ...

  9. 69.nodejs对mongodb数据库的增删改查操作

    转自:https://www.cnblogs.com/sexintercourse/p/6485381.html 首先要确保mongodb的正确安装,安装参照:http://docs.mongodb. ...

  10. django数据库的增删改查

    正常启动服务安装数据库cmd命令:python manage.py makemigrations 创建用户 在pxm里面会有一个py文件..这就是生成了表结构cmd命令:python manage.p ...

随机推荐

  1. Spring学习过程中遇到的No bean named 'beanId' is defined报错

    ApplicationContext applicationContext= new ClassPathXmlApplicationContext("bean.xml");Obje ...

  2. SPEC-RFC3261总述

    最近学习VoLTE(Voice Vver LTE)相关知识,而学习VoLTE必须要学相关的协议,最基础的就是RFC3261,RFC3261的全称是:SIP: Session Initiation Pr ...

  3. 用注解开发SpringMVC

    Spring2.5以后,用注解开发SpringMVC的功能十分强大,注解也是SpringMVC的精髓.在实际开发中,都会使用注解来实现. 这让SpringMVC开发工作量最小化,开发者只要专注于业务逻 ...

  4. 搭建SSH框架

    以下为链接地址:https://www.2cto.com/kf/201606/518341.html

  5. [计算机图形学]绘制填充模型:重心坐标、z-buffer

    目录 一.点乘和叉乘 0. 向量表示 1. 点乘 2.叉乘 2.1 坐标运算方式 2.2 向量运算方式 2.3 叉乘的用途 二.Bounding Box 三.重心坐标 四.z-buffer 五.总结 ...

  6. js中函数调用时,对参数个数和类型没有要求

    因为js是一种弱类型的编程语言,对数据类型的要求没有其他编程语言的要求严格,所以在定义函数的时候不需要像java一样对其传入参数的类型进行定,也对传入参数的个数没有要求. js函数的参数与大多数其他语 ...

  7. go的循环

    目录 go的循环 一.语法 二.语法简写 1.省略第一部分 2.省略第二部分 3.省略第三部分 4.全省略:死循环 5.终极写法,简洁变形 go的循环 Go中只有for循环,没有while循环.因为w ...

  8. deepin-terminal改造之路

    目录 1. 背景介绍 2. 下载源码 3. 依赖检查及安装 4. 改造之路 4.1 终端透明度快捷键 4.1.1 设置面板增加选项内容 4.1.2 添加配置解析内容 4.1.3 功能实现 4.1.4 ...

  9. 25个关键技术点,带你熟悉Python

    摘要:本文收纳了Python学习者经常使用的库和包,并介绍了Python使用中热门的问题. 01.Python 简介 什么是 Python 一种面向对象的高级动态可解释型脚本语言. Python 解释 ...

  10. 测试平台系列(3) 给Hello World添加日志

    给Hello World添加日志 回顾 通过上篇内容,我们已经使用「Flask」完成了我们的第一个接口.我们可以看到,使用「Flask」来编写接口是十分简单的.那么接下来,我们丰富一下上面的例子. 需 ...