Django 登录验证-自动重定向到登录页
2024-08-24 03:29:14
Web项目有些场景需要做用户登录验证,以便访问不同页面。
方法一:login_required装饰器
适用于函数视图。
from django.contrib.auth.decorators import login_required """
登录验证:
如果验证未登录,用户自动重定向到登录页面login_url='/login/';
如果验证成功,用户应当自动跳返到原来的路径,这个原来的路径默认存储在"next"查询参数中。
redirect_field_name默认即为"next"。
""" @login_required(redirect_field_name='next', login_url='/login/') # 当前视图所对应的请求path会自动放入"next"查询参数中
def my_view(request):
...
方法二:LoginRequiredMixin混入
适用于类视图。
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic.base import View """
登录验证:
如果验证未登录,用户自动重定向到登录页面login_url='/login/';
如果验证成功,用户应当自动跳返到原来的路径,这个原来的路径默认存储在"next"查询参数中。
redirect_field_name默认即为"next"。
""" # 这个Mixin应该位于继承列表中最左边的位置。
class MyView(LoginRequiredMixin, View):
# 重载属性。redirect_field_name默认即为"next",当前视图所对应的请求path会自动放入"next"查询参数中
login_url = '/login/'
redirect_field_name = 'next'
...
关于Mixin类
Mixin:在设计类的继承关系时,通常,主线都是单一继承下来的,如果需要"组合"额外的功能,通过多重继承就可以实现,这种设计通常称之为Mixin(混合)。
Mixin类一般以Mixin为后缀,使用Mixin类实现多重继承需要注意:
1)首先,它必须表示某一种辅助功能,而不是某个事物;
2)其次,它必须功能单一,如果有多个功能,那就写多个Mixin类;
3)再者,它不依赖于子类的实现;
4)最后,子类即便没有继承这个Mixin类,也照样可以工作,就是缺少了某个功能(比如飞机照样可以载客,就是不能飞了^_^)。
至此。转载请注明出处。
[ 本站相关链接:>>Django部署 ]
最新文章
- Entity Framework 6 Recipes 2nd Edition(10-1)译->;非Code Frist方式返回一个实体集合
- iOS-APP发布应注意
- cocopods 安装与使用
- ecstore-lnmp环境下crontab不执行原因
- 如何用Maven创建web项目(具体步骤)
- 移动端rem切图
- [Android Tips] 18. Enable/Disable WiFi via adb
- Linux简介
- C++11笔记
- chromedriver 与 chrome关联关系
- 制作一个vagrant的win7 box
- css 之!important
- BZOJ3711 Druzyny 最大值分治、线段树
- 【原创】大数据基础之Spark(2)Spark on Yarn:container memory allocation容器内存分配
- 牛客练习赛B题 筱玛的排列(找递推规律)
- 控件屏蔽Ctrl+C 复制
- 如何使用Nginx和uWSGI或Gunicorn在Ubuntu上部署Flask Web应用
- HDU3046_Pleasant sheep and big big wolf
- Oracle工作笔记
- 手写DCGAN
热门文章
- [Jenkins]Console Output中文显示问号的问题解决
- 在koa中想要优雅的发送响应?看这就对了
- C++—程序的内存分区
- 【原创】USART异步模式配置
- Keras 构建DNN 对用户名检测判断是否为非法用户名(从数据预处理到模型在线预测)
- go跨平台编译
- 翻译:如何向MariaDB中快速插入数据(已提交到MariaDB官方手册)
- js模块化编程之彻底弄懂CommonJS和AMD/CMD!
- [转]Docker基础-使用Dockerfile创建镜像
- 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类