Django身份认证--禁止匿名登录
来源:互联网 发布:迷雾 电视剧 知乎 编辑:程序博客网 时间:2024/05/29 02:24
项目已经实现了登录和注销功能,但还是没起作用,因为注销后还是可以直接通过url:http://127.0.0.1:8000/manage/main/ 访问到管理界面。所以还是需要进行访问控制。
查了下资料,在Django里面,最简单的作法只需要在相应的视图函数前面增加@login_required修饰符即可:
from django.contrib.auth.decorators import login_required #导入包
然后在视图函数前增加修饰符:
@login_required #表示需要登录才能访问本页面,禁止匿名登录def gotomanage(request): return render(request, 'schemes/tradescheme.html')
说明:如果用户还没有登录,默认会跳转到‘/accounts/login/’。这个值可以在settings文件中通过LOGIN_URL参数来设定。
因此在urls.py中设置:
from django.contrib.auth.views import login #先导入此包url(r'^accounts/login/$', login, {'template_name': 'login.html'}), # 用自己的登录界面来代替原来的默认值
说明:
之前查到的资料是用这种形式:
url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
但报错:TypeError: view must be a callable or a list/tuple in the case of include().
原因是:django1.10 后url中的第二个参数不再支持使用字符串的方式,而是要用真正的视图函数名称来代替。
Stack Overflow上的原话:
String reference is deprecated in Django 1.10. So, Django 1.10 no longer allows you to specify views as a string in your URL patterns. You can no longer pass import paths to url(), you need to pass the actual view function. The solution is to update your urls.py to include the view callable. This means that you have to import the view in your urls.py.
阅读全文
0 0
- Django身份认证--禁止匿名登录
- sqlserver身份认证不能登录
- django QQ认证登录
- oracle 禁止操作系统认证登录
- oracle 禁止操作系统认证登录
- Oracle 禁止操作系统认证登录
- sql server 2005 身份认证登录修改
- express使用session实现登录身份认证
- 2 Apache Shiro 身份认证(登录)
- sqlServer2014用sql server身份认证登录
- Django登录权限的认证
- linux as4 ftp如何禁止匿名登录
- 禁止以操作系统认证方式登录数据库
- 身份认证
- 身份认证
- 身份认证
- Kerberos身份认证在域用户工作站登录中的应用
- MSNP18协议分析(二)--- MSN登录身份认证
- 时间转换各种格式及类别
- 一张图了解TCP/IP协议
- 归档命令(3)——ar
- BEGAN解读
- 【caffe】Dropout_layer.cpp 防止过拟合
- Django身份认证--禁止匿名登录
- SEO优化中如何判断网站被降权了?
- IP地址的正则表示
- Springmvc笔记(二)
- 牛客直播课-代码实现
- 再谈java乱码:GBK和UTF-8互转尾部乱码问题分析
- PHP TP3.2 根据日期等搜索条件实现搜索信息分页显示
- Index Heap(索引堆)
- Lost connection to MySQL server during query 的解决方案