当前位置:   article > 正文

Django的url路由过滤,使用中间件解决不同用户间的权限访问拒绝,_django网站 实现项目隔离

django网站 实现项目隔离

一个网站一般会存在几种不同身份的用户,如可能会存在学生,教师,管理员等,每个用户的权限不一样,你当然不希望学生能够访问教师的页面或者看到管理员的管理页面,那么如何限制不同用户之间的路由过滤,或路由限制呢?

Django的框架中给我们提供中间件,即请求访问过程中需要执行的逻辑,我们可以通过中间件编写逻辑代码实现路由过滤筛选,以解决权限问题。

编写中间件代码(如需了解中间件使用方法,可访问博主上一篇博客)链接:Django自定义中间件的添加与注册

  1. # 此仅当示例逻辑代码,代码逻辑情况根据个人而定
  2. # 博主的代码中用户类型为登录时添加到session存储
  3. # 博主项目中的不同用户的访问路由前均以用户名开头,以方便辨认以及以下代码逻辑的可用性
  4. from django.utils.deprecation import MiddlewareMixin
  5. from django.http import HttpResponse
  6. class Filter(MiddlewareMixin):
  7. def process_request(self, request):
  8. # 获取路由的首个字段
  9. request_type = (request.path).split("/")[1]
  10. # 获取用户的类型
  11. user_type = request.session.get("user_type", "")
  12. if user_type == "student":
  13. if request_type == "student":
  14. pass # 如何用户类型与路由匹配,直接通过
  15. else:
  16. return HttpResponse(status=404) # 用户类型不匹配返回状态码404
  17. elif user_type == "teacher":
  18. if request_type == "teacher":
  19. pass # 如何用户类型与路由匹配,直接通过
  20. else:
  21. return HttpResponse(status=404) # 用户类型不匹配返回状态码404

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/71722
推荐阅读
相关标签
  

闽ICP备14008679号