Django:数据操作、查询、过滤器、非过滤器方法

# -*- coding: utf-8 -*-
"""
数据操作、查询、过滤器、非过滤器方法
"""



from random import randint

from django.shortcuts import render
from django.http import HttpResponse
from .models import User

# Create your views here.
def handle_data(request):
#增加记录
# user = User(username='Jack1',password='111222')
# user.save()

# 批量创建
# firstname = "张李赵周王郑"
# lastname = ["丽莉","德克","好","儿","童费","红英","豆蔻"]
# users = []
# for name in range(10):
# user = firstname[randint(0,5)] + lastname[randint(0,6)] + str(randint(0,999))
# users.append(User(username=user,password=str(randint(111111,999999))))
# User.objects.bulk_create(users)
# # User.objects.bulk_create([User(username='test1',password='123456'),User(username='test2')])
# return HttpResponse("增加数据")

#修改记录
user = User.objects.get(pk=1)
user.password = '333'
user.save()
return HttpResponse("数据修改")


# 删除记录
# try:
# user = User.objects.get(pk=1) #pk表示主键
# print(user,type(user))
# if user:
# user.delete()
# except Exception as e:
# print(e)
# return HttpResponse("数据删除")


def search_data(request):
#过滤器1 : all 查询所有
# users = User.objects.all()
# return render(request, "user_list.html", locals())


#过滤器2 :filter
# filter 相当于SQL中的 Where,可设置条件过滤结果
# users = User.objects.filter(uid__gt=150).filter(uid__lt=160) # __gt= : 大于 __lt= :小于
# return render(request, "user_list.html", locals())

#过滤器: order_by() 升序排序
# users = User.objects.filter(uid__gt=150).filter(uid__lt=160).order_by('username')
# return render(request, "user_list.html", locals())

#限制结果集
# users = User.objects.filter(uid__gt=150).filter(uid__lt=160).order_by('username')[:2] # 显示前两条数据
# return render(request, "user_list.html", locals())


#显示指定字段
# users = User.objects.values('username')
# return render(request, "user_list.html", locals())


#去重
users = User.objects.all().values('username').distinct()[:10]
return render(request, "user_list.html", locals())


# 非过滤方法
def process_query(request):
# # 1、get 只能返回一条数据,存在多条满足筛选条件时,报错
# user = User.objects.get(uid__gt= 173)
# print(user.username)
# return HttpResponse(f"get查询结果是:{user.username}")

# # 2、first 返回一个模型对象
# user = User.objects.first()
# print(user.username)
# return HttpResponse(f"first查询结果是:{user.username}")

# # 3、last 返回一个模型对象,查询最后一条数据
# user = User.objects.last()
# print(user.username)
# return HttpResponse(f"last查询结果是:{user.username}")

# # 4、count 显示结果集的数量总数,必须是QuerySet才能调用
# num = User.objects.filter(uid__gt=100).count()
# print(num)
# return HttpResponse(f"count查询结果是:{num}")


# 5、exists 判断结果集是否为空
flag = User.objects.filter(uid__gt=100).exists()
print(flag)
return HttpResponse(f"exists查询结果是:{flag}")
原文地址:https://www.cnblogs.com/hecity/p/15724560.html