DjangoRF实战-2-apps-users

1、用户模块

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

1.1根目录创建apps,

为了使用方便,还需要再pycharm中设置一下资源路径,就可以自动提示

1.2注册子应用

1.3添加应用根目录到环境变量path

python导入模块时,解释器首先在内置模块中查找。如果没找到,解释器再从 sys.path 变量中的目录列表里查

找。所以我们可以将项目下的 apps 目录插入到 sys.path 中,这样既可简化我们创建新应用时的操作,也可以优化

导入效率。在配置文件中添加如下代码:

python 复制代码
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、配置认证
相关推荐
小徐学编程-zZ11 小时前
量产测试数据
python·压力测试·数据库架构
QQ80578065111 小时前
django基于机器学习的电商评论情感分析系统设计实现
python·机器学习·django
wx090911 小时前
stata实现机器学习的环境配置
python·机器学习·stata
小短腿的代码世界11 小时前
Qt 股票订单撮合引擎:高频交易系统的核心心脏
开发语言·数据库·qt·系统架构·交互
JosieBook12 小时前
【数据库】时序数据库选型指南:从数据模型到大模型智能分析
数据库·时序数据库
小猿姐13 小时前
Clickhouse Kubernetes Operator 实测:哪种方案更适合生产?
运维·数据库·kubernetes
nuowenyadelunwen13 小时前
CS 61A Lab 2 笔记:短路求值、高阶函数与 Lambda 表达式
python·函数式编程·cs61a·berkeley
2501_9219392613 小时前
MHA高可用
数据库·mysql
_Evan_Yao13 小时前
MySQL 基础:SELECT、WHERE、JOIN 的第一次使用
数据库·mysql
qq_4228286214 小时前
android图形学之SurfaceControl和Surface的关系 五
android·开发语言·python