django中使用request,response

一、request参数

if request.method == "GET":
    func_name = request.GET.get('apiName')   # 获取单个GET参数
    query_params = request.GET and dict(request.GET.items()) or {}   # 获取所有GET参数
     get_dict = dict(request.GET.items())
if request.method == "POST":
    plan_id = request.POST.get('plan_id')    # 获取单个POST参数
    post_data = request.POST  # 获取所有POST数据
    post_data = json.loads(request.body)   # 获取所的POST数据

 

获取上传文件:

if request.method == 'POST':
   files = request.FILES.get('file')

 

二、获取、设置、删除cookie

获取cookie:

request.COOKIES.get("token")

设置cookie:

from django.http import JsonResponse

    def login(self):
        # 获取登录信息
        try:
            self.user = User.objects.get(account=self.kw.get("user_account"))
        except:
            return JsonResponse({"success": 3, "message": "用户未注册", "data": {}})

        # 判断密码是否正确
        if self.user.password != encryption(self.kw.get("password")):
            return JsonResponse({"success": 4, "message": "密码不正确", "data": {}})
        if self.user.status == 0:
            return JsonResponse({"success": 5, "message": "用户被禁用", "data": {}})
        uid = self.user.id

        # 记录登录时间
        try:
            user = User.objects.get(id=uid)
            user.last_login_time = datetime.date.today()
            user.save()
        except:
            raise Exception("登录时间记录失败")

        token_name = token.create_token(uid)  # 创建并设置token
        self.response = JsonResponse({"success": 1, "message": "登录成功", "data": {"uid": uid}})
        self.response.set_cookie("token", token_name)
        return self.response

删除cookie:

def log_out(**kwargs):
    """    用户登出  """
    uid = kwargs.get("uid", None)
    token_key = uid
    auth_key = "jur_" + str(uid)
    agent_key = default.AGENT_ID_KEY + str(uid)
    if not all([uid, auth_key]):
        raise Exception("用户未登录")
    # 记录最后登录时间
    try:
        user = User.objects.get(id=uid)
        user.last_login_time = datetime.date.today()
        user.save()
    except:
        raise Exception("登录时间记录失败")
    cache.delete(token_key)  # 清除缓存中的token
    cache.delete(auth_key)  # 删除缓存中权限信息
    cache.delete(agent_key)  # 删除代理人信息
    response = JsonResponse({"success": 1, "message": "退出成功", "data": {"uid": uid}})
    response.delete_cookie('token')  # 删除cookie
    return response

 

posted on 2019-10-27 17:29  myworldworld  阅读(249)  评论(0)    收藏  举报

导航