创建用户、更改密码、验证用户

在 Django 的 User objects 里,有以下几个默认属性:

  • username
  • password
  • email
  • first_name
  • last_name

1.创建新用户

创建用户最直接的方法就是使用 create_user() 方法:

# 用户模型
from django.contrib.auth.models import User

def new_user(request):
    # 创建一个的新用户,三个参数分别为username、email、password
    # 在这里email可以不填写
     user = User.objects.create_user('john', '[email protected]', 'johnpassword')

     # 在这里你还可以继续更改用户的其他属性
     user.last_name = 'Lennon'
     user.save()

2.创建超级用户

在命令行运行:

$ python manage.py createsuperuser

3.更改密码

Django 不会使用明文保存用户密码,只存储为 hash 值,所以不要直接去操作用户的密码属性,而是使用 Django 提供的相关方法。

第一种更改用户密码的方法是在命令行运行:

$ python manage.py changepassword *username* 

第二种方法是使用 set_password() 方法:

# 用户模型
from django.contrib.auth.models import User

# 更改密码
def new_password(request):
    # 用 username 找到相应的用户
    u = User.objects.get(username='john')

    # 设置新密码
    u.set_password('new_password')
    u.save()

最后,我们还能在 Django admin 里更改密码。

4.验证用户

Django 使用 authenticate() 方法来验证用户,默认根据 usernamepassword 来验证,如果通过验证返回一个 User object,反正返回一个一个 None:

# 用户模型
from django.contrib.auth.models import User
# 用户验证模块
from django.contrib.auth import authenticate


# 验证用户
def new_authenticate(request):
    # 用 username 和 password 验证用户
    user = authenticate(username='john', password='new_password')
    if user is not None:
        return HttpResponse('验证通过')
    else:
        return HttpResponse('没有该用户或密码错误')

你可能感兴趣的:(创建用户、更改密码、验证用户)