login页给复选框加上name

流程图
post请求

get请求

视图类代码
# /user/login
class LoginView(View):
def get(self, request):
print('get method')
print('cookie...', request.COOKIES)
print('cookie中的remember值', request.COOKIES.get("remember"))
# 获取用户名
if "username" in request.COOKIES:
# {"username":"pyhui"}
username = request.COOKIES.get("username")
username = username
checked = "checked"
else:
# {}
print('cookie里没有存入username')
username = ""
checked = ""
# 渲染页面
return render(request, "login.html",
{"username":username, "checked": checked})
def post(self, request):
# 用户登陆
print('post method')
print('获取cookie', request.COOKIES)
print('cookie中的remember值', request.POST.get("remember"))
# 1,接收数据
username = request.POST.get("username")
password = request.POST.get("password")
print(username)
print(password)
# 2,校验数据
from django.contrib.auth import authenticate
user = authenticate(username=username, password=password)
# 如果用户验证成功
if user is not None:
print('user, is active', user, user.is_active)
# 如果用户已激活
if user.is_active:
# 3,登陆逻辑
print('登陆用户')
from django.contrib.auth import login
login(request, user)
print('页面跳转')
response = redirect(reverse("goods:index"))
remember = request.POST.get("remember")
if remember == 'on':
# 响应对象.set_cookie(键,值,过期时间)
response.set_cookie("username", username, max_age=7*24*3600)
else:
response.delete_cookie("username")
return response
# 用户未激活
else:
# 用户未激活,给他一个链接,让用户点击这个链接就可以发送一个激活邮件
html = "<a href='/user/resend_active_mail/{}/'>重新发送激活码</a>".format(user.id)
return render(request, "login.html", {"errmsg": html})
# 如果用户验证不成功
else:
return render(request, "login.html", {"errmsg": "用户名或者密码错误"})
模板页面的布置

本文详细介绍了使用Django框架实现用户登录的过程,包括GET和POST请求处理、视图类编写、用户验证及登录逻辑,并讲解了如何利用Cookie保存用户名以实现记住我功能。

被折叠的 条评论
为什么被折叠?



