博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django的TemplateResponse
阅读量:7257 次
发布时间:2019-06-29

本文共 1296 字,大约阅读时间需要 4 分钟。

def my_render_callback(response):	return responsefrom django.template.response import TemplateResponsedef my_templateresponse(request):	response =  TemplateResponse(request, 'template.html', {})	response.add_post_render_callback(my_render_callback);	return response

we call add_post_render_callback to register a callback function.

in base.py , get_response 

 

if hasattr(response, 'render') and callable(response.render):                    for middleware_method in self._template_response_middleware:                        response = middleware_method(request, response)                    response = response.render()

The response is a TemplateResponse, the subclass of  SimpleTemplateResponse

 

it has a 'render' function

 

def render(self):        """Renders (thereby finalizing) the content of the response.        If the content has already been rendered, this is a no-op.        Returns the baked response instance.        """        retval = self        if not self._is_rendered:            self.content = self.rendered_content            for post_callback in self._post_render_callbacks:                newretval = post_callback(retval)                if newretval is not None:                    retval = newretval        return retval

需要注意的是这个callback的返回值, 如果 not None, 它的返回值就是我们最后的response,

 

 

转载地址:http://xzvdm.baihongyu.com/

你可能感兴趣的文章
InstallShield 12 制作安装包
查看>>
Option Handling
查看>>
批量另存mxd
查看>>
[android] 看博客学习Android常见的几种RuntimeException
查看>>
分布式缓存技术redis学习(一)——redis简介以及linux上的安装
查看>>
使用 IDEA + Maven + Git 快速开发 JAVA或者Web 应用(转)
查看>>
为什么kafka使用磁盘而不是内存
查看>>
jumpserver安装及使用教程
查看>>
PS 文字有锯齿怎么办
查看>>
Java操作XML文件
查看>>
创立一个站点的前前后后(起因,域名,云平台,备案,CDN等等)(1)
查看>>
HDU 2669 Romantic(扩展欧几里德)
查看>>
iOS runtime探究(二): 从runtime開始深入理解OC消息转发机制
查看>>
PHP cURL 函数
查看>>
base64的编码
查看>>
38.Linux驱动调试-根据系统时钟定位出错位置
查看>>
距离矢量路由协议中路由环路问题的解决方法:
查看>>
Vue 过滤器filters
查看>>
谈谈基于OAuth 2.0的第三方认证 [上篇]
查看>>
Lambda表达式where过滤数据
查看>>