码迷,mamicode.com
首页 > 其他好文 > 详细

用户认证系统

时间:2017-12-13 02:12:56      阅读:353      评论:0      收藏:0      [点我收藏+]

标签:type   utils   cat   实例   create   function   name   index   eth   

一 导入auth模块

from django.contrib.auth.models import User
from django.contrib import auth

auth模块的操作针对的就是auth_user表

二 auth模块的方法

  1 authenticate() 用户验证函数。验证成功,返回一个名称为用户登录名的User对象,这个对象可以调用auth_user表中的属性。验证失败,返回None。

def login(request):
    if request.method==POST:
        username=request.POST.get(username)
        password=request.POST.get(password)
        user=auth.authenticate(username=username,password=password)
        print(user,type(user))
        return render(request,login.html)
    return render(request,login.html)

  输出:

zuo <class django.contrib.auth.models.User>

  2 login(request,user) 记录session功能

 user=auth.authenticate(username=username,password=password)
        if user:
            auth.login(request,user)
            return redirect(/index/)

  3 logout(request) 注销

  核心 代码 request.session.flush()

 auth.logout(request)

  PS  request.user。获取当前登录的用户,返回值是一个对象。 用在index页面。确定当前是否有用户登录。如果不是匿名,说明login登录成功。如果是匿名,说明login登录不成功,跳转login页面。

  一个AUTH_USER_MODEL 类型的对象,表示当前登录的用户。如果用户当前没有登录,user 将设置为django.contrib.auth.models.AnonymousUser 的一个实例。你可以通过is_authenticated() 区分它们。

  user 只有当Django 启用AuthenticationMiddleware 中间件时才可用。

  没有用户时:

def index(request):

    username=request.user
    print(username,type(username))

  输出:

AnonymousUser <class django.utils.functional.SimpleLazyObject>

  有用户时:

  输出

zuo <class django.utils.functional.SimpleLazyObject>

三 User对象的API

  1 is_authenticated() 返回布尔值,判断用户是否登录

  2 创建新用户

    User.objects.create_user(username=‘‘,password=‘‘)

  3 修改密码

    user=User.objects.get(username=‘xx‘)

    user.set_password(‘新密码‘)      user是对象

    user.save()

用户认证系统

标签:type   utils   cat   实例   create   function   name   index   eth   

原文地址:http://www.cnblogs.com/654321cc/p/8030393.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!