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) 收藏 举报
浙公网安备 33010602011771号