赞
踩
一个网站一般会存在几种不同身份的用户,如可能会存在学生,教师,管理员等,每个用户的权限不一样,你当然不希望学生能够访问教师的页面或者看到管理员的管理页面,那么如何限制不同用户之间的路由过滤,或路由限制呢?
Django的框架中给我们提供中间件,即请求访问过程中需要执行的逻辑,我们可以通过中间件编写逻辑代码实现路由过滤筛选,以解决权限问题。
编写中间件代码(如需了解中间件使用方法,可访问博主上一篇博客)链接:Django自定义中间件的添加与注册
- # 此仅当示例逻辑代码,代码逻辑情况根据个人而定
- # 博主的代码中用户类型为登录时添加到session存储
- # 博主项目中的不同用户的访问路由前均以用户名开头,以方便辨认以及以下代码逻辑的可用性
-
-
- from django.utils.deprecation import MiddlewareMixin
- from django.http import HttpResponse
-
- class Filter(MiddlewareMixin):
- def process_request(self, request):
-
- # 获取路由的首个字段
- request_type = (request.path).split("/")[1]
-
- # 获取用户的类型
- user_type = request.session.get("user_type", "")
- if user_type == "student":
- if request_type == "student":
- pass # 如何用户类型与路由匹配,直接通过
- else:
- return HttpResponse(status=404) # 用户类型不匹配返回状态码404
- elif user_type == "teacher":
- if request_type == "teacher":
- pass # 如何用户类型与路由匹配,直接通过
- else:
- return HttpResponse(status=404) # 用户类型不匹配返回状态码404
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。