DjangoRF实战-2-apps-users
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用户定义模型
- 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) - 自定义用户模型类
思考:为什么要自定义用户模型类?
如今几乎所有的web应用都需要用户提供手机号码,单默认的用户模型类中没有mobile字段
随着业务的发展,未来很可能需要自定义用户模型
django强烈推荐在开始一个项目时设置一个自定义的用户模型
如何自定义用户模型类?
继承自AbstractUser(最简单可行的方法,详情见官方文档https://docs.djangoproject.com/zh-hans/3.2/topics/auth/customizing/#substituting-a-custom-user-model) 。
新增 mobile 字段。
2.2迁移用户模型
- 指定用户模型类
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、身份验证是将传入请求与一组标识凭据(例如请求来自的用户或用于签名的令牌)相关联的机制。然后,权限和限制
策略可以使用这些凭据来确定是否应该允许请求。
- 安装RESTframework
- pip install djangorestframework
之前安装过了,就不安装了。
2.注册
在配置 INSTALLED_APPS 中添加 restframework
3、
4、配置认证
相关文章:

DjangoRF实战-2-apps-users
1、用户模块 创建一个用户模块子应用,用来管理用户,和认证和授权。 1.1根目录创建apps, 为了使用方便,还需要再pycharm中设置一下资源路径,就可以自动提示 1.2注册子应用 1.3添加应用根目录到环境变量path python导…...

java面试题,有synchronized锁,threadlocal、数据可以设置默认值、把redis中的json转为对象
有面试题,有synchronized锁,threadlocal 一、面试题小记二、加锁synchronized1. 先看代码2. synchronized 讲解2.1. 同步代码块2.2. 同步方法2.3. 锁的选择和影响2.4. 注意事项2.5 锁的操作,手动释放锁,显式地获取锁(属…...
Apache Spark:深度解析
文章目录 引言Apache Spark 官网链接Spark 的原理1. 核心组件2. 弹性分布式数据集(RDD)3. 执行模型 基础使用1. 环境搭建2. 示例代码 高级功能1. DataFrame 和 Dataset2. 机器学习3. 流处理 优缺点优点缺点 结论 引言 Apache Spark 是一个快速、通用、可…...
使用umi作为模板如何实现权限管理
三种权限管理的方法: 在做后台管理系统时,难免会使用到权限管理,权限管理方式有三种,分别是:路由、守卫、后端配合。 路由:通过动态路由,根据登录人员不同注册不同的路由,直接让没…...

系统架构设计师教程 第4章 信息安全技术基础知识-4.1 信息安全基础知识-解读
系统架构设计师教程 第4章 信息安全技术基础知识-4.1 信息安全基础知识 4.1.1 信息安全的概念4.1.1.1 信息安全的范围4.1.1.1.1 设备安全4.1.1.1.2 数据安全4.1.1.1.3 内容安全4.1.1.1.4 行为安全 4.1.2 信息存储安全4.1.2.1 信息使用的安全4.1.2.1.1 用户的标识与验证4.1.2.1.…...
【Rust光年纪】探索Rust游戏开发世界:六款引人注目的游戏引擎与框架
探索Rust游戏开发引擎:选择合适的工具 前言 随着Rust语言的不断发展,越来越多的游戏开发者开始将其视作构建游戏引擎和框架的理想选择。本文将介绍几个用于Rust语言的游戏引擎和框架,分别对其核心功能、使用场景、安装与配置以及API进行概览…...

从数据时代到智能时代,星环科技信雅达联合发布金融全栈解决方案
近年来,星环科技与信雅达在金融行业的多个关键领域展开了广泛而深入的合作,推出了一系列面向金融科技领域的联合解决方案。此次合作基于星环科技在大数据、人工智能和云计算领域的先进技术,以及信雅达在金融领域的深厚积累,围绕数…...
自定义维度映射:Kylin Cube设计的高级玩法
自定义维度映射:Kylin Cube设计的高级玩法 在数据仓库领域,Apache Kylin以其高性能的分析能力而闻名。Kylin通过构建多维数据立方体(Cube)来实现对大数据集的快速查询。Cube设计中的维度映射是优化查询性能的关键环节。本文将探讨…...
c17 新特性 字面量,变量,函数,隐藏转换等
导论 c17新特性引入了许多新的语法,这些语法特性更加清晰,不像传统语法,语义飘忽不定,比如‘a’你根本不知道是宽字符还是UTF-8 字符。以及测试i i,最后结果到底是多少。这种问题很大情况是根据编译器的优化进行猜测&a…...
git操作的一些备忘录
1.回退本地合并 git merge --abort 2.撤销上一次的提交 方法一:(已经提交到git线上仓库了,git reset操作,会把之前提交的都删除,感觉有点危险) 想要让Git回退历史,有以下步骤: 使用git log命令,…...

vscode回退不显示了,不方便操作
一、后退前进按钮 顶部显示,方便调试 <—— ——> 文件-> 首选项 -> 设置->commandcenter->勾选 Window: Title Bar Style->custom 将native —>custom...

常见的CSS属性(一)——字体、文本、边框、内边距、外边距、背景、行高、圆角、透明度、颜色值
一、字体 二、文本 三、边框 四、外边距 五、内边距 六、背景 七、行高 八、圆角 九、透明度 九、颜色值 元素的继承性是指给父元素设置了某些属性,子元素或后代元素也会有作用。 一、字体 “font-*”是字体相关的属性,具有继承性。代码如下&a…...

react入门到实战-day2-7.21
昨天晚上刚学完已经一点了,来不及写笔记,主要是想睡觉哈,所以今天补上,我发现效率还挺高的,今天重新做笔记,加固了昨天的知识点,要不以后都这样子哈,学完第二天再写哈,要…...

Springboot集成Elasticsearch High Level REST Client实现增删改查实战
获取源码🚩 需要完整代码资料,请一键三连后评论区留下邮箱,安排发送!!!🤖 什么是High Level REST Client? Elasticsearch 的 High Level REST Client 是一个用于与 Elasticsearch…...

2023河南萌新联赛第(二)场 南阳理工学院
A. 国际旅行Ⅰ 题目: 思路: 因为题意上每个国家可以相互到达,所以只需要排序,输出第k小的值就可以了。 AC代码: #include<bits/stdc.h> #define int long long #define IOS ios::sync_with_stdio(0);cin.tie…...
使用Docker Compose给自己上传的JAR打包成镜像并自动启动容器
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过编写一个docker-compose.yml文件,可以简化Docker容器的管理。本文将介绍如何使用Docker Compose将一个上传的JAR文件打包成Docker镜像,并在容器中自动启动该应用程序。 一、准备工作…...

NET8部署Kestrel服务HTTPS深入解读TLS协议之Certificate证书
Certificate证书 Certificate称为数字证书。数字证书是一种证明身份的电子凭证,它包含一个公钥和一些身份信息,用于验证数字签名和加密通信。数字证书在网络通信、电子签名、认证授权等场景中都有广泛应用。其特征如下: 由权威机构颁发&…...
DML数据库的数据类型
DML 用于改变数据表中的数据的操作语言。 包括INSERT(将数据插入到数据表中),UPDATE(更新表中已经存在的数据),DELETE(删除表中已经存在的数据) INSERT 用法 INSERT INTO 表名(字段1&#x…...
@RequestParam和@PathVariable 处理 HTTP 请求参数的注解
RequestParam 请求参数 可解析前端get请求路径后以问号拼接的参数,查询参数是 URL 后面的问号 (?) 后跟的一系列键值对,RequestParam 可以设置参数是否是必需的(使用 required 属性) GetMapping("/users") public String getUsers(RequestPar…...

《代码大全》读书笔记-第Ⅰ部分 奠定基础
0.欢迎来到软件构建世界 什么是软件构件: 对于非正式及项目,会觉得罗列出来的这些活动太过于繁复。但是这些对于正式项目都是很有必要的(大部分人都没经历过,比如说我)。一般一些小公司主要也就是需求分析、编码、开发人员自测、集成测试这几…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...