简单的两阶段模板呈现应用程序,用于缓存经过身份验证的请求。

django-phased的Python项目详细描述


Build Status

一个简单的两阶段模板呈现应用程序,用于缓存经过身份验证的请求。

工作原理

这项技术已被阿德里安·霍洛瓦蒂(adrian holovaty)描述为in this blog post 之前由Honza Kral。其思想是首先用 表示为“阶段”的某些块,以便它们不会被呈现,以及 将保留可以通过第二次传递呈现的有效模板代码。

第二个过程从缓存中获取部分呈现的模板,然后 对其执行第二次呈现,使用requestcontext提供特定于用户的 模板的上下文。这使得能够快速生成具有 通过绕过使用 CACHE_MIDDLEWARE_ANONYMOUS_ONLY设置。

此实现使用一个机密分隔符,使其能够安全地 模板代码注入漏洞的可能性,因为它只传递任何 通过模板解析器一次给定文本。阶段块还可以包含 缓存上下文。

基本实现

django phased包含一个模板标记phased,它定义了 将在第二阶段进行分析。一个中间件类, PhasedRenderMiddleware,处理响应以呈现 在第一次渲染期间跳过。

UpdateChemiddleware的一个特殊子类,它删除“vary:cookie” 响应更新缓存时的头也包括在内,如果 代替标准的updatechemiddleware将阻止缓存 中间件根据cookies改变缓存密钥,从而启用缓存 已验证会话中的页。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java FirebaseInstanceId。getInstance()始终为空   linux Java执行文件错误   javaspringboot:如何使用Ajax在springboot和Thymeleaf中创建进度条?   java禁用在安卓上使用传单时启用setJavaScriptEnabled   java如何在主体中发布原始类型JSON数据?   消除JAVA While循环中的额外输出   如何在java中直接将基本数据类型分配给自定义类   java为什么addNode()方法返回编译错误“类型中的方法…不适用于参数…”,我该如何修复它?   java惰性合成可观察对象   eclipse Java Blackberry位图单击   java Android:AsyncTask对象[]无法在doInBackground中强制转换   java有没有办法重构或改进这段代码?   java如何使用系统以十六进制打印字节。出来普林顿?   多线程如何在我的java聊天室中调试“java.net.UnknownHostException”?   java如何从Google App Engine下载应用程序源文件   java如何在Spring Data Mongo的聚合$group中使用类似$dateToString   java IBM websphere application server未在MyEclipse8中启动。0