增删改查
增
models.UserInfo.objects.create(user='yangmv',pwd='123456')
# 或
obj = models.UserInfo(user='yangmv',pwd='123456')
obj.save()
# 或
dic = {'user':'yangmv','pwd':'123456'}
models.UserInfo.objects.create(**dic)
删
models.UserInfo.objects.filter(user='yangmv').delete()
改
models.UserInfo.objects.filter(user='yangmv').update(pwd='520')
# 或者
obj = models.UserInfo.objects.get(user='yangmv')
obj.pwd = '520'
obj.save()
查
models.UserInfo.objects.all()
# #只取user列
models.UserInfo.objects.all().values('user')
# #取出id和user列,并生成一个列表
models.UserInfo.objects.all().values_list('id','user')
models.UserInfo.objects.get(id=1)
models.UserInfo.objects.get(user='yangmv')
模糊搜索
- 是/否区分大小写:
__contains
/__icontains
- 多字段:
search_dict["info"] = info items = Fileinfo.objects.filter(**search_dict)
或
关系:Q(produce__icontains=key_word) | Q(author__icontains=key_word)
# 查询检索 + 分页查询 ==> 表格重载 ==> 使用模糊搜索
def file(request):
# 前端传递筛选的额数据, 这里返回符合当前条件的数据
# ==> 前端发送请求时候就是这个格式
carmodel = request.GET.get("carmodel", None)
if key_word == "":
key_word = None
# 这里是分页查询的page和limit
page = request.GET.get('page')
limit = int(request.GET.get('limit'))
search_dict = {}
if carmodel is None:
# 如果用户什么都没有搜,显示所有
items = Fileinfo.objects.all()
else:
# 如果用户搜索了,先获取上面几个的查询结 ==> 有没有key_word
if carmodel:
search_dict["carmodel"] = carmodel
# 如果没有key_word, items就是这个值
items = Fileinfo.objects.filter(**search_dict)
# 如果key_word存在,再从上面搜索的QuerySet中搜索
if key_word:
key_word = key_word.replace(' ', '')
items = Fileinfo.objects.filter(**search_dict).filter(Q(produce__icontains=key_word))
# 这里是使用什么方法分页查询数据的
paginator = Paginator(items, limit)
try:
page_item = paginator.page(page)
except PageNotAnInteger:
page_item = paginator.page(1)
except EmptyPage:
page_item = paginator.page(paginator.num_pages)
items = json.loads(serializers.serialize("json", page_item))
# 构建数据列表
res_list = []
for item in items:
item["fields"].update(pk=item["pk"]) # 把id添加到列表中,只返回数据字典
res_list.append(item["fields"])
res = {
"code": 0,
"msg": "OK",
"count": paginator.count, # 数据的条数
"data": res_list # 返回的数据列表
}
return JsonResponse(res)
Django CreateView、UpdateView 源码解析
Django WebSocket (一):WebSocket 概念及原理
Django WebSocket (二):Channels 概念及原理
Django WebSocket (三):Channels + WebSocket 实现在线聊天
GitLab、Jenkins、Harbor 安装 | CentOS、Docker
JetBrains | PyCharm 链接 GitLab | GitHub
评论区