auth认证模块

csrf相关装饰器

from django.views.decoretors.csrf import csrf_exempt,csrf_protect
'''
csrf_exempt
	忽略csrf校验
csrf_protect
	开启csrf校验
'''
# 针对FBV
@csrf_exempt\@csrf_protect
def func(request):
    return(request,'func.html')
# 针对CBV
csrf_protect 三种CBV添加装饰器的方式都可以
csrf_exempt 只有一种方式可以生效  (给重写的dispatch方法装)

基于中间件思想编写项目

# importlib模块
可以通过字符串的形式导入模块
# 常规导入方式
from cc import b
print(b)# <module 'ccc.b' from '/Users/jiboyuan/PycharmProjects/day61_1/ccc/b.py'>  结果是一个模块对象
print(b.name)  # 最小单位到一个具体的模块文件 不能具体到方法
# 字符串导入方式
import importlib
module_path = 'cc.b'
res = importlib.import_module(module_path)

from ccc.b import name  # 可以直接导变量数据
import importlib
module_path = 'ccc.b.name'
importlib.import_module(module_path)  # 不可以 最小导入单位是模块文件级别

# 以发送提示信息为需求 编写功能
方法1:封装成函数
方法2:封装成配置
import settings 
import importlib
def send_all(msg):
    # 循环获取配置文件中字符串信息
    for str_path in settings.NOTIFY_FUNC_LIST:  # 格式:notify.email.Emain
        # 字符串切割
        module_path,class_str_name = str_path.rsplit('.',maxsplit=1)
        # 根据module_path导入,模块文件中对应的类名
        class_name = getattr(module,class_str_name)
        # 5.实例化
        obj = class_name()
        # 调用发送信息的功能
        obj.send(msg)

auth认证模块

# django提供给你快速完成用户相关功能的模块
	用户相关功能:创建用户 登录认证 注销 编辑等
# django配套提供了一张用户表
	执行数据库迁移命令之后默认产生的auth_user
# django自带admin后台管理用户登录参考的就是auth_user表
创建admin后台管理员用户:run manage.py
>>>createsuperuser
自动对用户密码进行加密处理并保存

auth方法大全模块

auth模块是django自带的用户认证模块,默认使用auth_user表来存储用户数据,

from django.contrib import auth
# 1.验证用户名和密码是否正确
auth.authenticate(username='username',password='password')  如果用户存在则返回一个用户对象
# 2.保存用户登录状态
	auth.login(HttpRequest,user) 接收一个HR对象以及一个经过认证的User对象从而实现登录,本质是为该用户生成相应的session
# 3.获取当前用户对象
	request.user
# 4.判断当前用户是否登录
	request.user.is_authenticated()
# 5.校验登录装饰器
	from django.contrib.auth.decorators import login_required
    @login_required(login_url='/lg/')  # 局部配置
    @login_required # 全局配置
    LOGIN_URL = '/lg/'  # 需要在配置文件中添加配置
# 6.修改密码
	request.user.check_password()
    request.user.set_password()
    request.user.save()
# 7.注销登录
	auth.logout(request)  该函数接收一个HttpResponse对象,无返回值,调用该函数 当前请求的session信息会被清除
# 8.注册用户
	from django.contrib.auth.models import User
    User.objects.create_superuser()  # 创建一个管理员用户
    User.objects.create_user()  # 创建普通用户

auth扩展字段

# 方式1:编写一对一表关系(了解)
# 方式2:编写类继承(推荐)
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
    # 编写AbstractUser类中没有的字段 不能冲突
    phone = models.BigIntegerField()
AUTH_USER_MODEL = 'app01.User'
'''
类继承之后 需要重新执行数据库迁移命令 并且库里面是第一次操作才可以
2.auth模块所有的方法都可以直接在自定义模型上面使用自动切换参照表
'''

项目开发流程

1.需求分析
2.技术选型
3.分组开发
4.提交测试
5.交付上线
"""
写项目 一般都是从数据库设计开始!!!
	一个好的数据库设计 会让写代码变得非常的轻松
"""

bbs数据表分析

'''
1.确定表
2.确定字段
3.确定关系
'''
1.用户表
2.个人站点表
3.文章表
4.文章分类表
5.文章标签表
6.文章点赞点踩表
7.文章评论表
posted @   名字只需六字  阅读(109)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示