基于注册登陆简单的使用django认证系统

简单的使用Django认证系统

User对象

User对象是认证系统的核心。它们通常表示与你的站点进行交互的用户,并用于启用限制访问、注册用户信息和给创建者关联内容等

默认user的基本属性有:

创建一个django中的User对象

创建users最直接的方法是使用create_user()辅助函数:

下面的代码是未激活的账户

from django.contrib.auth.models import User
user = User.objects.create_user(username, email, password)

user.is_active = 0

user.save()
#如果激活则把is_active 字段值改为1

 

 

认证一组给定的用户名和密码。

使用authenticate(),认证一组给定的用户名和密码。它接收关键字参数形式的凭证,使用默认配置时参数是username和password,如果密码能够匹配给定的用户名,它将返回一个User对象。如果密码无效,authenticate()返回None。

#导入authenticate()

 

from django.contrib.auth import authenticate

user = authenticate(username=‘john‘, password=‘secret‘)
if user is not None:
    #用户名密码正确
    if user.is_active:
        #用户已激活
        #记录用户的激活状态
        login(request,user)
        # 实现页面的跳转
        response =redirect(reverse('user:user'))
        #判断是否需要记住用户名

        remember = request.POST.get('remember')
        if remember == 'on':
            #记住用户名
            response.set_cookie('username',username,max_age=7*21*3600)
        else:
            response.delete_cookie('username')
        return response
    else:
        #用户未激活
        return render(request, 'login.html', {'errmsg': '请激活您的账户'})
else:
    #用户名或密码错误
    return render(request, 'login.html',{'errmsg':'用户名或密码错误'})

 

 

 

修改密码

Django不会在user模型上存储原始的(明文)密码,而只是一个哈希(完整的细节参见文档:密码是如何管理的)。因为这个原因,不要尝试直接操作user的password属性。这也是为什么创建一个user时要使用辅助函数。

若要修改一个用户的密码,你有几种选择:

manage.py changepassword *username*提供一种从命令行修改User密码的方法。它提示你修改一个给定user的密码,你必须输入两次。如果它们匹配,新的密码将会立即修改。如果你没有提供user,命令行将尝试修改与当前系统用户匹配的用户名的密码。

你也可以通过程序修改密码,使用set_password()

代码如下:

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

>>> u = User.objects.get(username=‘john‘)

>>> u.set_password(‘new password‘)

>>> u.save()


  

Ps: 如果你安装了Django admin,你还可以在认证系统的admin页面修改user的密码。

参考链接:

  http://www.mamicode.com/info-detail-2069023.html

猜你喜欢

转载自www.cnblogs.com/pythonyeyu/p/11319742.html