django配置过滤器

每日歌曲

为什么需要过滤器?比如用户没有登录是发不了评论的,但是在没有配置过滤器时,用户只需要知道发表评论的地址,就可以进入这个界面。所以需要加一个地址过滤器,判断是否是用户登录了,没有登录时,如果输入的不是我们过滤掉的地址就让它回到首页,不允许访问。
具体配置:

    1. 在子项目新建一个mymiddleware.py的文件
    • 代码:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      from django.shortcuts import HttpResponseRedirect

      try:
      from django.utils.deprecation import MiddlewareMixin
      except ImportError:
      MiddlewareMixin=object

      class SimpleMiddleware(MiddlewareMixin):
      def process_request(self,request):
      if request.path!='/file/index/' and \
      request.path!='/file/login/' and \
      request.path!='/file/find/' and \
      request.path!='/file/signin/' and \
      request.path!='/file/logout/' and \
      request.path!='/file/addUser/':
      # if request.session['id']!=None: 这么写是错的,因为刚开始登录时是没有id这个session的
      if request.session.get('id',None)!=None: #所以需要在这里设置默认值
      pass
      else:
      return HttpResponseRedirect('/file/index')

配置

    1. 在settings.py配置

      'file.mymiddleware.SimpleMiddleware', #配置登录访问的过滤器