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'))

1.3也可以这样写,更推荐 BASE_DIR = Path(file).resolve().parent.parent sys.path.insert(0, os.path.join(BASE_DIR, ‘apps’))
然后注册子应用的时候,只需要写个名字就OK了 ‘users’, # ‘apps.users.apps.UsersConfig’,

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、配置认证
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值