django实现登录注册注销

首先实现登录:
在urls.py中引入模板

from django.contrib.auth.views import LoginView#新版本django登录视图
urlpatterns=[
	path('login/',LoginView(template_name='appname/htmlname'),name='htmlname')#此时,我们使用模板渲染页面,其中template_name=传参为被渲染的模板
]

此时在login.html中,写入form表单

{% csrf_token %} {{form.as_p}} 登录 此时需要注意的两个位置,首先action需要为登录界面的url,使用{% csrf_token %},作为验证上传数据是否合法,使用{{form.as_p}}将登录的表单传入。在登录后,需要跳转页面,使用input标签,提交表单后,将自动跳转到指定页面 实现注册功能: urls.py中与正常视图写法相同, 在views.py 中:
from django.contrib.auth import logout,login,authenticate#引入登录等模块
from django.contrib.auth.forms import UserCreationForm#引入创建用户需要填写的表单
from django.core.urlresolvers import reverse#引入重定向
from django.http import HttpResonseRedirect
def register(request):
	if request.method !='POST':#判断是否提交表单,如果不是,创建一个表单对象
		form=UserCreationForm()
	else:
		form=UserCreationForm(data=request.POST)#将填写的数据填充到表单中
		if form.is_valid():#检查用户上传的数据是否合法
			form.save()#数据合法后,保存到数据库
			new_user=authenticate(username=new_user.username,password=request.POST['password1'])#authenticate返回是一个通过身份验证的对象,传参值为username,password,其中password用户输入两次,所以传参时,需要password1
			login(request,new_user)#将注册的用户自动登录
			retuern HttpRespnseRedirect(reverse('appname:htmlname'))#重定向页面,自动跳转
		return render(request,'appname/htmlname'{'form':form})#渲染页面,并且将form表单传入html页面中

注销页面:
urls.py中与正常视图写法相似
在views.py中:

from django.contrib.auth import logout#引入注销模块
def logout(request):
	logout(request)
	return HttpRespnseRedirect(reverse('appname:htmlname'))#跳转到指定页面

django登录注册注销源代码,可以分享
个人学习总结,如有错误,敬请指正

猜你喜欢

转载自blog.csdn.net/Xiang_lhh/article/details/105098296