第十七章: 中间件
在有些场合,需要对Django处理的每个request都执行某段代码。 这类代码可能是在view处理之前修改传入的request,或者记录日志信息以便于调试,等等。
这类功能可以用Django的中间件框架来实现,该框架由切入到Django的request/response处理过程中的钩子集合组成。 这个轻量级低层次的plug-in系统,能用于全面的修改Django的输入和输出。
每个中间件组件都用于某个特定的功能。 如果你是顺着这本书读下来的话,你应该已经多次见到“中间件”了
第12章中所有的session和user工具都籍由一小簇中间件实现(例如,由中间件设定view中可见的
request.session
和request.user
)。第13章讨论的站点范围cache实际上也是由一个中间件实现,一旦该中间件发现与view相应的response已在缓存中,就不再调用对应的view函数。
第14章所介绍的
flatpages
,redirects
, 和csrf
等应用也都是通过中间件组件来完成其魔法般的功能。
这一章将深入到中间件及其工作机制中,并阐述如何自行编写中间件。
当前内容版权归 wizardforcel 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 wizardforcel .