在 Django 的 User objects 里,有以下几个默认属性:
- username
- password
- 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', 'lennon@thebeatles.com', '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()
方法来验证用户,默认根据 username
和 password
来验证,如果通过验证返回一个 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('没有该用户或密码错误')