news 2026/10/23 7:42:04

Django 中创建用户与修改密码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Django 中创建用户与修改密码

在 Django 中创建用户有多种方式,具体取决于你是想通过管理后台、命令行还是代码(视图/API)来实现。

以下是三种最常用的方法:


1. 使用命令行创建管理员 (Superuser)

如果你是刚开始开发项目,需要进入 Django Admin 后台,可以使用以下命令:

python manage.py createsuperuser

系统会提示你输入:

  • Username: 用户名
  • Email address: 邮箱
  • Password: 密码(输入时不会显示字符)

2. 在代码中创建普通用户

如果你是在编写注册功能或逻辑脚本,可以使用 Django 内置的User模型。

推荐做法:使用create_user方法(它会自动处理密码加密)。

fromdjango.contrib.auth.modelsimportUser# 创建用户并保存到数据库user=User.objects.create_user(username='myusername',email='test@example.com',password='mypassword123')# 还可以设置其他属性user.first_name='John'user.last_name='Doe'user.save()

[!IMPORTANT]
注意:千万不要使用User.objects.create()来创建用户,因为这样会导致密码以明文形式存入数据库,用户将无法登录。


3. 使用 Django 管理后台

这是最直观的图形化操作方式:

  1. 启动服务器:python manage.py runserver。
  2. 访问http://127.0.0.1:8000/admin。
  3. 使用管理员账号登录。
  4. 点击Users (用户)旁的Add (+)按钮。
  5. 输入用户名和密码即可。

核心 API 参考表

方法适用场景密码处理
create_user()标准注册流程自动加密 (Hash)
create_superuser()创建拥有所有权限的管理员自动加密 (Hash)
User.objects.create()错误做法明文存储(极不安全)

进阶建议:自定义用户模型

如果你正在开发一个新项目,Django 官方强烈建议使用自定义用户模型 (Custom User Model)。这样以后你想用“手机号”或“邮箱”代替“用户名”登录时,就不需要重构整个数据库了。

如果你忘记了 Django 管理员(Superuser)的密码,或者需要重置某个用户的密码,可以根据你的权限等级选择以下方法:


1. 使用命令行重置(最快捷)

如果你有服务器终端的访问权限,这是最简单的方法。Django 提供了一个专门的命令来更改密码:

python manage.py changepassword<用户名>

操作步骤:

  1. 运行上述命令(例如:python manage.py changepassword admin)。
  2. 按照提示输入新密码(输入时字符不可见)。
  3. 确认新密码,完成后系统会提示Password changed successfully。

2. 通过 Django Shell 重置(最灵活)

如果你不记得用户名,或者需要批量操作,可以使用 Python 交互式环境:

python manage.py shell

在 Shell 中输入以下代码:

fromdjango.contrib.auth.modelsimportUser# 1. 查找用户(如果你不记得名字,可以先 User.objects.all() 查看)user=User.objects.get(username='your_username')# 2. 设置新密码user.set_password('new_password123')# 3. 必须保存!user.save()exit()

3. 如果连用户名都忘了怎么办?

如果你完全不记得有哪些超级管理员,可以先进入 Shell 查看列表:

fromdjango.contrib.auth.modelsimportUser# 列出所有超级管理员的用户名User.objects.filter(is_superuser=True).values_list('username',flat=True)

4. 通过管理后台 (Admin)

如果你已经登录了另一个具有“更改用户”权限的账号:

  1. 进入/admin/auth/user/。
  2. 点击对应的用户名。
  3. 在密码字段附近,通常会有一个**“该表单不包含密码。你可以在此修改密码”**的链接。
  4. 点击链接进入专用修改页面。

常见问题提示

  • Hash 加密:永远不要直接在数据库(如 SQLite 或 MySQL 客户端)中手动修改密码字段,因为 Django 存储的是经过PBKDF2算法加密的 Hash 值,直接输入明文会导致无法登录。
  • Session 失效:修改密码后,该用户在其他设备上的登录状态会失效(Session 会更新)。

如果你正在使用自定义的用户模型(Custom User Model),导入方式可能略有不同。需要我演示如何获取自定义模型吗?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 15:33:55

java农村集体产权管理系统springboot-vue

文章目录具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 同行可拿货,招校园代理 java农村集体产权管理系统springboot-vue 主要技术与…

作者头像 李华
网站建设 2026/10/23 0:39:26

【课程设计/毕业设计】基于SpringBoot+Vue的宠物健康咨询系统基于springboot的养宠物指南服务平台系统的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/10/22 19:39:11

最小二乘问题详解6:梯度下降法

4. 实例从上述求解过程可以看到&#xff0c;梯度下降法其实比之前文章中介绍的Gauss-Newton方法要简单很多&#xff0c;那么这里还是给出一个只使用Eigen实现梯度下降法求解非线性最小二乘问题的例子。例子中模型函数为f(x;θ)aebx&#xff1a;#include <Eigen/Dense>#in…

作者头像 李华
网站建设 2026/10/22 10:07:07

Kamailio转发机制

目录 一&#xff0e;Kamailio转发机制 1.有状态的请求转发 2.无状态的请求转发 3.有状态的响应转发 4.无状态的响应转发 二&#xff0e;示例 1.有状态的请求转发 2.无状态的请求转发 一&#xff0e;Kamailio转发机制 基于路由规则和SIP消息头&#xff08;可以是Request…

作者头像 李华
网站建设 2026/10/23 11:44:02

Thinkphp和Laravelpython桂平旅游管理系统vue

目录具体实现截图项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;带文档1万字以上 同行可拿货,招校园代理 Thinkphp和Laravelpython桂平旅游管理系统vue 项目开发技…

作者头像 李华
网站建设 2026/10/23 12:30:03

Linux设备树基础

Linux设备树基础笔记学习整理基于野火鲁班猫教程并且添加自己学习后理解的内容然后还有ai的一些总结。如果有说的不好或者不对的地方希望大家指正&#xff01;&#xff01;&#xff01;这是设备树的简略图&#xff0c;设备树的根节点扩张了许多子节点。有关设备树&#xff0c;D…

作者头像 李华