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

在 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', '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() 方法来验证用户,默认根据 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('没有该用户或密码错误')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,234评论 19 139
  • 经过对django的初步学习,我们已经对后台的基本流程以及django的运作有了一定的了解,但是这还不足够,dja...
    coder_ben阅读 3,868评论 8 34
  • 4 创建一个社交网站 在上一章中,你学习了如何创建站点地图和订阅,并且为博客应用构建了一个搜索引擎。在这一章中,你...
    lakerszhy阅读 2,218评论 0 7
  • 此段内容简要来自自强学堂的教程详情请查询自强学堂 一、 后台的运作流程 接收request请求 处理数据 获取请求...
    coder_ben阅读 5,261评论 6 56
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,278评论 22 257