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

本文共 1350 字,大约阅读时间需要 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,

 

 

转载于:https://www.cnblogs.com/suncoolcat/p/3325101.html

你可能感兴趣的文章
hdu 4496(并查集逆向添边)
查看>>
hdu 5437(优先队列模拟)
查看>>
(转)POJ推荐50题
查看>>
无法定位序数4369于动态链接库libeay32.dll
查看>>
手把手实现腾讯qq拖拽删去效果(一)
查看>>
子父类不同属性代码执行顺序
查看>>
dbcp 1.4 底层连接断开时内存泄露bug
查看>>
关于密码
查看>>
ASP.NET 导出PPT
查看>>
Git忽略规则及.gitignore规则不生效的解决办法
查看>>
How to fix the sources list
查看>>
Eclipse的数据库插件
查看>>
mysql简单学习
查看>>
嵌入式操作系统
查看>>
URI和URL的区别
查看>>
UI---startup--jquery
查看>>
echart使用总结
查看>>
iframe自适应宽度和高度
查看>>
jdk版本特性
查看>>
(HDU)1048 --The Hardest Problem Ever( 最难的问题)
查看>>