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


1.添加用户记录

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

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

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

3.增加用户方法2

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

4.批量插入方法2

UserInfo.objects.bulk_create([UserInfo(username='huihui', password='222'),
UserInfo(username='dongmao', password='222'),
UserInfo(username='zhouzhou', password='222'),
UserInfo(username='dongmao1', password='222'),
UserInfo(username='zhouzhou1', password='222')
])

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

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

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

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

8.批量删除多条记录

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

9.数据查询

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

10.使用过滤器查询数据

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

11.def curd(request):

 # 数据查询
user = UserInfo()
user.username = '王辉'
user.password = '2222222'
user.save()
return HttpResponse("CURD")

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

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

13.查询指定字段

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

14.去除查询中重复字段

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

15.反序 使用reverse方法

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

16.非过滤器查询方法

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

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

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

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

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

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

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

20.判断结果集是否为空

flag = UserInfo.objects.filter(userid__lt=17).all().exists()
print(flag)
return HttpResponse("非过滤器查询方法") """
关系运算符的表达式的使用
>= 字段__get=num
> 字段__gt=num
< 字段__lt=num
<= 字段__lte=num
== 字段=num
!= 字段__ne=num
"""

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

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

22.集合查询

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

23.查询字段是否为空

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

24.字符串操作查询

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

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

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

26.日期查询操作

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

27.统计查询

def group(request):
#查询最大userid
userid = UserInfo.objects.aggregate(Max('userid'))
print(userid) # 查询最小值userid
userid = UserInfo.objects.aggregate(Min('userid'))
print(userid) # 统计分组查询
data = UserInfo.objects.values('username').annotate(Count('userid')).filter(userid=30)
print(data)
return HttpResponse("统计查询")

最新文章

  1. IDEA Generating project in Batch mode
  2. session的常用方法。
  3. 【MPI学习6】MPI并行程序设计模式:具有不连续数据发送的MPI程序设计
  4. APNs详细使用步骤
  5. 可以获取客户端ip的API
  6. 异常System.Web.HttpException (0x80004005): Server cannot set status after HTTP headers have been sent.
  7. ListView usage in ERP-DEV
  8. HTML通过事件传递参数到js一
  9. 元组-tuple功能介绍
  10. C语言通讯录管理系统
  11. .net core下使用Thrift
  12. 快速简单搭建wordpress平台
  13. 抓包工具之fiddler
  14. Tensorflow object detection API 搭建物体识别模型(一)
  15. python----面向对象(2)
  16. 跨站点请求伪造(CSRF)
  17. Office 手动kms激活方法
  18. Java中的单利模式介绍
  19. es 剩余磁盘空间达到es最小值,添加数据被block
  20. Jira 迁移工作

热门文章

  1. SpringBoot文件上传与POI的使用
  2. Bitter.NotifyOpenPaltform : HTTP 异步消息接收调度中心&amp;mdash;开源贡献 之 一:简介
  3. MySQL学习笔记(六)
  4. void指针及指针的多次赋值的理解
  5. 后端程序员之路 49、SSDB
  6. springboot源码(4)
  7. WEB容器开启、关闭OPTIONS方法
  8. arti车是大幅度发地方大幅度发
  9. Kubernetes Container lifecycle hooks
  10. 【转载】Java泛型详解