记录在使用Django开发过程中遇到的问题(3)

记录在使用Django开发过程中遇到的问题【3】--

1、类的引入

HttpResponse:代表响应的类
JsonResponse:JsonResponse用于前后端数据交互的json数据类
serializers:序列化类
time:时间类

from django.http import HttpResponse,JsonResponse
from users.models import User  实体类
import json
from django.core import serializers
import time

2、数据的添加

①json.loads(request.body) 获取前端传过来的参数
②userAdd.save() 数据保存
③time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) 获取当前时间并格式化为年月日时分秒的格式

def userAdd(request):
    if request.method == "POST":
        req = json.loads(request.body)  
        id = req.get("id")
        nationality = req["nationality"]
        number = req["number"]
        del_flag = 1
        userAdd = User(
            id = id,
            nationality=nationality,
            number=number,
            del_flag=del_flag,
            )
        userAdd.save()  
    return JsonResponse({"code":"SUCCESS","msg":"publish user sucess."})

3、数据的查询

①res=对象.objects.all() 获取所有数据
res = 对象.objects.filter(id=1) 条件查询,获取的是多条数据,
res = 对象.objects.get(id=1) 条件查询,获取的是1条数据

②如果是多条件查询,可以用
res = 对象.objects.filter(id=1).filter(number=23) 这是并
res = 对象.objects.filter(Q(id=1)| Q(number=23) 这是或
res = 对象.objects.filter(id_contains=1).filter(number_contains=23) 字段名_contains代表迷糊查询,一般用于汉字的匹配,字段名_icontains不区分大小写的模糊查询

如果是不确定的查询条件,可以用下面的方法
querydict = {}
if id != None:
querydict[“id”] = id
if number !=None:
querydict[“number”] = number
res = User.objects.filter(**querydict) **是解析字典

③json.loads(serializers.serialize(‘json’,res)) 将获取到的数据转换成json格式的数据 ,serializers:序列化
④对象.objects.order_by(“update_date”) #根据update_date顺序排序 可以连写
res = 对象.objects.filter(id=1).order_by(“update_date”)
order_by("-update_date") #根据update_date倒序排序

def userListByCondition(request):
    if request.method == "GET":
        req = json.loads(request.body)  
        id = req.get("id")  
        nationality = req.get("nationality")   
        number = req.get("number")   
        querydict = {}

        querydict["del_flag"] = 1
        if id != None:
            querydict["id"] = id   
        if number !=None:
            querydict["number"] = number
        res = User.objects.filter(**querydict)          #  **是解析字典
        data = json.loads(serializers.serialize('json',res))
  
        return JsonResponse({"code":"SUCCESS","msg":"query user sucess.","users":data,})
       

4、数据的假性删除

对象.del_date = 2 直接修改对象的值
对象.save() 保存

def userDelete(request):
    if request.method == "POST":
        req = json.loads(request.body)  
        id = req["id"]
        userObj = User.objects.get(id=id)
        userObj.del_flag = 2
        userObj.save()   
        return JsonResponse({"code":"SUCCESS","msg":"delete user sucess."})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值