DjangoRF实战-2-apps-users

news2025/4/8 7:57:24

1、用户模块

创建一个用户模块子应用,用来管理用户,和认证和授权。

1.1根目录创建apps,
为了使用方便,还需要再pycharm中设置一下资源路径,就可以自动提示
在这里插入图片描述
1.2注册子应用
在这里插入图片描述
1.3添加应用根目录到环境变量path
python导入模块时,解释器首先在内置模块中查找。如果没找到,解释器再从 sys.path 变量中的目录列表里查
找。所以我们可以将项目下的 apps 目录插入到 sys.path 中,这样既可简化我们创建新应用时的操作,也可以优化
导入效率。在配置文件中添加如下代码:

import sys
from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
sys.path.insert(0, str(BASE_DIR/'apps'))

2.1用户定义模型

  1. Django默认用户模型类
    Django认证系统中提供了用户模型类User保存用户的数据。
    User对象是认证系统的核心。
    Django认证系统用户模型类位置
    django.contrib.auth.models.User
    父类AbstractUser介绍
    User对象基本属性
    创建用户(注册用户)必选: username、password
    创建用户(注册用户)可选: email、first_name、last_name、last_login、date_joined、
    is_active 、is_staff、is_superuse
    判断用户是否通过认证(是否登录): is_authenticated
    创建用户(注册用户)的方法
    user = User.objects.create_user(username, email, password, **extra_fields)
    用户认证(用户登录)的方法
    from django.contrib.auth import authenticate
    user = authenticate(username=username, password=password, **kwargs)
    处理密码的方法
    设置密码: set_password(raw_password)
    校验密码: check_password(raw_password)
  2. 自定义用户模型类
    思考:为什么要自定义用户模型类?
    如今几乎所有的web应用都需要用户提供手机号码,单默认的用户模型类中没有mobile字段
    随着业务的发展,未来很可能需要自定义用户模型
    django强烈推荐在开始一个项目时设置一个自定义的用户模型
    如何自定义用户模型类?
    继承自AbstractUser(最简单可行的方法,详情见官方文档https://docs.djangoproject.com/zh-hans/3.2/topics/auth/customizing/#substituting-a-custom-user-model) 。
    新增 mobile 字段。

2.2迁移用户模型

  1. 指定用户模型类
    Django是通过配置项 AUTH_USER_MODEL 来确定项目中到底使用哪个用户模型,所以我们需要修改配置指定我们的自
    定义的用户模型。
    注意:应用要在 INSTALLED_APPS 中注册,且一定要在第一次迁移之前要设置好此项
    #指定本项目用户模型类 settings.py 设置
    AUTH_USER_MODEL = ‘users.User’
    在这里插入图片描述

2. 迁移用户模型类(根目录)

1.创建迁移文件
python manage.py makemigrations
2.执行迁移文件
python manage.py migrate
在这里插入图片描述
3、会生成一个db文件,添加到右侧的数据库中即可。在这里插入图片描述
在这里插入图片描述

3、用户认证

1、身份验证是将传入请求与一组标识凭据(例如请求来自的用户或用于签名的令牌)相关联的机制。然后,权限和限制
策略可以使用这些凭据来确定是否应该允许请求。

  1. 安装RESTframework
  2. pip install djangorestframework
    之前安装过了,就不安装了。
    2.注册
    在配置 INSTALLED_APPS 中添加 restframework
    在这里插入图片描述
    3、在这里插入图片描述
    4、配置认证
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1955739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搭建cool-admin-java(前端vue)项目

为什么选择 Cool Admin?​ 随着技术不断地发展,特别是最近 Ai 相关的技术发展,以往的框架已经越来越不能满足现代化的开发需求。 Cool Admin 做为后来者有后发优势,主要特点: Ai 编码,从页面到后端代码&…

成为git砖家(5): 理解 HEAD

文章目录 1. git rev-parse 命令2. 什么是 HEAD2.1 创建分支当并未切换, HEAD 不变2.2 切换分支,HEAD 改变2.3 再次切换分支, HEAD 再次改变 3. detached HEAD4. HEAD 表示分支、表示 detached HEAD 有什么区别?区别相同点 5. HEA…

【大模型学习】1:基于通用大语言模型的构建方法

基于通用大语言模型的构建 目录 前言 一、大模型是什么? 二、如何构建大语言模型? 1.基本介绍 2.数据 3.模型构建 总结 前言 本人之前没接触过大模型,研究生的研究方向也不是这一块的,所以是以工程的心态快速上手做到工科领域的不…

数据库实验:SQL Server创建数据库及基本表

一、实验目的: 1、掌握使用SQL SERVER Management Studio工具连接数据库引擎; 2、掌握使用CREATE TABLE 创建基本表的用法; 3、掌握使用ALTER TABLE 修改基本表的用法; 4、掌握使用DROP TABLE删除基本表的用法; 二…

【C++指南】类和对象(中)

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法》 期待您的关注

Python的输入规则

Python的输入特别有意思,它和C的输入不一样,它的输入的原型是类似于C的string类型,但是对于一些有意思的算法题来说,光是读入string型的内容并不容易解题,于是我们可以从两个方面来将输入给转化。 1. 先使用函数input…

【Node.js基础05】包的理解与使用

一:包的理解与简介 1 什么是包 包是一个将模块、代码、以及其他资料聚合成的文件夹 2 包的分类 项目包:编写项目代码的文件夹 软件包:封装工具和方法供开发者使用 3 为什么要在软件包中编写package.json文件 记录包的清单信息 二&…

用 node 搭建基于 gotenberg、LibreOffice 或者 onlyoffice 文档转换服务

1. 使用 gotenberg 和 LibreOffice a. 开启 docker,运行以下指令 docker run --rm -p 3000:3000 gotenberg/gotenberg:8 gotenbderg 默认运行在本地 3000 端口 b. 项目中添加如下依赖 npm install chromiumly dotenv -D chromiumly 是用来连接 gotenberg 服务的包…

深入理解计算机系统 CSAPP 练习题12.4

我们每次都用read_set初始化ready_set是因为我们每次都处理read_set里的描述符,这是我们希望服务器做的事情.每次一有描述符3或描述符0,select函数会更新ready_set ,我们判断更新后ready_set的情况.然后干对应的事. 由此可以看到select函数的神奇之处,它把一个复杂的事情简单化…

烯牛数据JS逆向:MD5数据加密?不存在的!

🔍 步骤与思路详解 🕵️ 抓包数据接口 使用抓包工具捕获烯牛数据的接口请求,仔细观察请求体和响应体,发现数据均进行了加密处理。 🔐 定位到加密位置 分析抓取到的JS文件,找到负责加密的代码块。 &am…

研发管理革命:探索顶尖的工时系统选择

国内外主流的10款研发工时管理系统对比:PingCode、Worktile、无鱼项目工时系统、Toggl Track、泽众ALM、Asana、Jira、GitHub、Trello、TrackingTime。 在研发团队中,工时管理常常成为效率瓶颈,尤其是在资源分配和项目进度跟踪方面。选择合适…

面试 SQL整理 常见的SQL面试题:大厂经典60题(一)

目录 SQL基础知识整理: 数据库基础知识 为什么要使用数据库 数据保存在内存 数据保存在文件 数据保存在数据库 什么是SQL? 什么是MySQL? 数据库三大范式是什么 mysql有关权限的表都有哪几个 MySQL的binlog有有几种录入格式?分别有什么区别&…

【数学建模】——matplotlib简单应用

目录 1.绘制带有中文标签和图例的正弦和余弦曲线 2. 绘制散点图 1.修改散点符号与大小 2.修改颜色 3.绘制饼状图 4.在图例中显示公式 5.多个图形单独显示 6.绘制有描边和填充效果的柱状图 7.使用雷达图展示学生成绩 8.绘制三维曲面 9.绘制三维曲线 10.设置…

在 Postman 中设置全局 token

目录 问题描述解决方案 问题描述 在使用 Postman 进行接口测试时,经常会遇到在 Header 中添加 token 的情况。当接口数量较多时,需要为每个接口进行设置,而且当 token 失效时需要重新获取并设置,这样一来效率较低。 解决方案 下…

idea-springboot后端所有@注释含义汇总-持续更新!

(1)启动类 ①SpringBootApplication 出现这个代表这个就是整个程序的入口,是运行的开始位置 (2)Dao层 ①Repository 作用就是声明自己这个为bean文件(每一个controller都是一个bean文件)&am…

搭建自己的金融数据源和量化分析平台(四):自动化更新上市公司所属一级、二级行业以及股票上市状态

前面做了更新沪深交易所的上市股票列表的读取和更新,但一旦股票退市则需要在数据库里将该股票状态更新为退市,同时附上退市日期,将股票名更改为XX退。 此外深交所下载的xls解析出来是没有上市公司所属的二级行业的,因此还需要建立…

永磁同步电机无速度算法--非线性磁链观测器

非线性磁链观测器顾名思义观测器的状态变量为磁链值,观测的磁链值收敛于电机实际磁链值,观测器收敛。非线性是由于观测器存在sin和cos项,所以是非线性观测器 一、原理介绍 表贴式永磁同步电机αβ轴电压方程: 将公式变换 定义状态变量X: 定…

网络安全 DVWA通关指南 DVWA Command Injection(命令注入)

DVWA Command Injection&#xff08;命令注入&#xff09; 文章目录 DVWA Command Injection&#xff08;命令注入&#xff09;LowMediumHighImpossible Low 1、分析网页源代码 <?php// 当表单提交按钮&#xff08;Submit&#xff09;被触发时执行以下代码 if (isset($_P…

用Python编写用于IAR内存上传和下载的motorola格式转换工具

需求背景 IAR导出和载入内存支持 motorola 格式和 intel-extended 格式&#xff1a; 其中 motorola 格式以16进制表示&#xff0c;在输出文件中可以直接看到内存地址信息&#xff0c;并且文本长度比 intel-extended 格式更短。 所以我这里以 motorola 格式为基础&#xff0c;…

【b站-湖科大教书匠】6 应用层 - 计算机网络微课堂

课程地址&#xff1a;【计算机网络微课堂&#xff08;有字幕无背景音乐版&#xff09;】 https://www.bilibili.com/video/BV1c4411d7jb/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 6 应用层 6.1 应用层概述 6.2 客户-服务器方式和对等方…