目录

Django-cookie

bookandmusic
bookandmusic 2022年01月04日  ·  阅读 5

设置Cookie

可以通过HttpResponse对象中的set_cookie方法来设置cookie

HttpResponse.set_cookie(cookie名, value=cookie值, max_age=cookie有效期)
  • max_age 单位为秒,默认为None。如果是临时cookie,可将max_age设置为None

读取Cookie

可以通过HttpRequest对象的COOKIES属性来读取本次请求携带的cookie值。request.COOKIES为字典类型。

cookie模拟用户登录

登录及设置登录标识

from django.views import View
from django.http.response import JsonResponse

class Login(View):
    def post(self, request):
        query_dict = request.POST  # 获取form-data参数,得到django的查询字典

        userName = query_dict.get('userName', None)
        password = query_dict.get('password', None)

        if userName == "mac" and password == '123321':  # 登录成功,设置cookie标识,过期时间为2小时
            hp = JsonResponse({"code": 200, "msg": "OK"})
            hp.set_cookie('userName', userName, max_age=2 * 60 * 60)

            return hp
        else:  # 登录失败,返回错误信息
            return JsonResponse({'code': 200, 'msg': "FAIL"})

登录校验

from django.views import View
from django.http.response import JsonResponse

class UserInfo(View):
    def get(self, request):
        cookie_dict = request.COOKIES
        userName = cookie_dict.get('userName', None)

        if userName is not None:
            return JsonResponse(
                {"code": 200, "msg": "OK",
                 "userInfo": {"userName": userName, "gender": "男", "email": "mac321@163.com"}})
        else:
            return JsonResponse({"code": 200, "msg": "FAIL"})

分类: Python
标签: django cookie auth