当我们使用 Django 来搭建一套网页系统,有时候我们会需要在网页里加入一些信息,比如宣示版权之类的信息,而如果在每一个需要渲染的页面都加上这些信息,会比较麻烦。
而在 Django 里有一个中间件 middleware 可以帮助我们实现这个功能而不需要在每一个返回的 HTML 页面都手动加上。
使用方法如下:
1、settings.py 里面加上中间件
比如我们在创建完一个系统以后,系统的名称叫做 hunter,那么在 settings.py 的中间件部分的位置我们需要加上一行:
'hunter.headers.HttpResponseCustomHeader',
2、settings.py 所在文件夹加上 headers.py 头部信息
from django.utils.deprecation import MiddlewareMixin # 1.10.x
class HttpResponseCustomHeader(MiddlewareMixin):
def process_response(self, request, response):
if not response.has_header("System"):
response["System"] = "hunter/2.0.0"
return response
至此,我们的工作就完成了,重启 Django 系统,刷新页面,就可以按 F12 在头部信息里找到一个 System 的字段,字段的属性值就是 “hunter/2.0.0”。