利用 Django 自身模块 编写:
from django.shortcuts import render, redirect
from django.core.urlresolvers import reverse
from django.views.decorators.http import require_http_methods
from django.http import HttpResponse
from django.contrib.auth import authenticate, login as d_login, logout as d_logout
# 登录模块
@require_http_methods(["GET", "POST"])
def login(request):
if request.method == 'GET':
user = request.user
if user.is_authenticated: #如果已登录
return redirect(reverse('slg:index'))
else:
return render(request, 'slg/login.html')
if request.method == 'POST':
userName = request.POST['userName']
userPassword = request.POST['userPassword']
user = authenticate(username=userName, password=userPassword) #django认证
if user is not None:
if user.is_active: # 用户 在 Admin后台,被设置为 “激活状态”
d_login(request, user) #将 登录信息 存储到 django自身的 login模块 中
return HttpResponse(1)
else:
return HttpResponse(2)
else:
return HttpResponse(0)
# 登出模块
def logout(request):
d_logout(request)
return redirect(reverse('slg:index'))
之后,在各个views视图中,引用@login_required(login_url='slg:login') 装饰器即可。
(从 from django.contrib.auth.decorators import login_required中导入)
981

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



