django配置过滤器
为什么需要过滤器?比如用户没有登录是发不了评论的,但是在没有配置过滤器时,用户只需要知道发表评论的地址,就可以进入这个界面。所以需要加一个地址过滤器,判断是否是用户登录了,没有登录时,如果输入的不是我们过滤掉的地址就让它回到首页,不允许访问。
具体配置:
- 在子项目新建一个mymiddleware.py的文件
- 代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20from 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')
在settings.py配置
'file.mymiddleware.SimpleMiddleware', #配置登录访问的过滤器