07-登录、登出及登录限制

  1. 权限和分组
    1. 登录、注销和登录限制:
      1. 登录
      2. 注销:

权限和分组

登录、注销和登录限制:

登录

在使用authenticate进行验证后,如果验证通过了。那么会返回一个user对象,拿到user对象后,可以使用django.contrib.auth.login进行登录。示例代码如下:

  • 切记:这里不可以定义视图名字为login。
  • 可以使用其他的名字。
1
2
3
4
5
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
#login登录之后自动把用户信息存入session
login(request, user)

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponse
from django.shortcuts import render,redirect
from url_app.forms import LoginForm
from django.contrib.auth.decorators import login_required

# 登录页面
def my_login(request):
if request.method == 'GET':
return render(request,'login.html',locals())
else:
form = LoginForm(request.POST)
if form.is_valid():
telephone = form.cleaned_data.get('telephone')
password = form.cleaned_data.get('password')
remember = form.cleaned_data.get('remember')
user = authenticate(request,username=telephone,password=password)
#判断user是否存在和是否是活跃状态。
if user and user.is_active:
#如果是将 保存session
login(request,user)
if remember:
#如果如果过用户选择记住密码则将session状态为永久,最高存储15天
request.session.set_expiry(None)
else:
#如果没有选记住密码在用户关闭之后清空session
request.session.set_expiry(0)

return HttpResponse('登录成功!')
else:
return HttpResponse('手机号或者密码错误')
else:
return redirect(my_login)

注销:

注销,或者说退出登录。我们可以通过django.contrib.auth.logout来实现。他会清理掉这个用户的session数据。

实例:

1
2
3
4
def my_logout(request):
#在用户登录状态具有清空当前session的作用。
logout(request)
return HttpResponse('')

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com
目录
主站