cookie是用于记录用户登录状态的,给登录成功后进入的首页设置一个cookie,
如
def login(request):
if request.method == "GET":
return render(request, "login.html")
if request.method == "POST":
username = request.POST.get("username")
password = request.POST.get("pwd")
if auth.authenticate(username=username,
password=password): # anthenticate在数据表中user寻找与用户输入姓名是否匹配的使用前提是储存密码必须使用非明文,即创建方式需要使用create_user
user_obj = auth.authenticate(username=username, password=password)
print(user_obj.username) # 在cmd页面显示打印内容
# return render(request, 'main.html')
rep = redirect('/main/') #或者可以用小名,ridirect(reverse('main'))
rep.set_cookie("is_login", True) ## 设置cookie, "is_login", True
return rep
else:
return render(request, 'wrong.html')
rep= redirect('/首页url/')
rep.set_cookie("cookie名", 值)(值可以给一个Ture)
return rep
然后在每一个视图函数上加上一下代码:(后面发现好像不设置如下代码也可以,即在只用把cookie写给注册和注销)
status = request.COOKIES.get('cookie名称')
def main(request):
'''
print(request.COOKIES.get('is_login')) # 获得cookie is_login
status = request.COOKIES.get('is_login') # 收到浏览器的再次请求,判断浏览器携带的cookie是不是登录成功的时候响应的 cookie
if not status: ## 若 cookie is_login 为空
return redirect('/login/')
return render(request, "main.html")
'''
if request.method =='GET':
return render(request, 'main.html')
注销函数就是将cookie删除,与设置cookie的方法相似
def logout(request):
rep = redirect('/login/')
rep.delete_cookie("is_login") ## 删除 cookie is_login
return rep
rep = redirect('/login/')
rep.delete_cookie('cookie名称')
return rep
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)