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部署 ]

最新文章

  1. Entity Framework 6 Recipes 2nd Edition(10-1)译->非Code Frist方式返回一个实体集合
  2. iOS-APP发布应注意
  3. cocopods 安装与使用
  4. ecstore-lnmp环境下crontab不执行原因
  5. 如何用Maven创建web项目(具体步骤)
  6. 移动端rem切图
  7. [Android Tips] 18. Enable/Disable WiFi via adb
  8. Linux简介
  9. C++11笔记
  10. chromedriver 与 chrome关联关系
  11. 制作一个vagrant的win7 box
  12. css 之!important
  13. BZOJ3711 Druzyny 最大值分治、线段树
  14. 【原创】大数据基础之Spark(2)Spark on Yarn:container memory allocation容器内存分配
  15. 牛客练习赛B题 筱玛的排列(找递推规律)
  16. 控件屏蔽Ctrl+C 复制
  17. 如何使用Nginx和uWSGI或Gunicorn在Ubuntu上部署Flask Web应用
  18. HDU3046_Pleasant sheep and big big wolf
  19. Oracle工作笔记
  20. 手写DCGAN

热门文章

  1. [Jenkins]Console Output中文显示问号的问题解决
  2. 在koa中想要优雅的发送响应?看这就对了
  3. C++—程序的内存分区
  4. 【原创】USART异步模式配置
  5. Keras 构建DNN 对用户名检测判断是否为非法用户名(从数据预处理到模型在线预测)
  6. go跨平台编译
  7. 翻译:如何向MariaDB中快速插入数据(已提交到MariaDB官方手册)
  8. js模块化编程之彻底弄懂CommonJS和AMD/CMD!
  9. [转]Docker基础-使用Dockerfile创建镜像
  10. 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类