Django的TemplateResponse
2013-09-16 20:16
387 查看
def my_render_callback(response): return response from django.template.response import TemplateResponse def 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,
相关文章推荐
- Django的TemplateResponse
- django 1.8 官方文档翻译: 3-2-3 TemplateResponse 和 SimpleTemplateResponse
- 【django】django render()和render_to_response()和direct_to_template()和locals()
- [Django]template {% if 1==1 %} 错误
- django:TemplateDoesNotExist错误的解决方法
- Django笔记-Template
- django render和render_to_response()
- 浅谈Django自定义模板标签template_tags的用处
- Python Django基础教程(二)(模板templatetags)
- 在django模板中定义变量(set variable in django template)
- Django使用httpresponse返回用户头像实例代码
- django template 编写隔行更换数据背景颜色
- Django: An example of Django template
- [django]用requests从url获取图片(数据类型是bytes)后如何在template中显示出来
- spring组件 RestTemplate + @ResponseBody 使用心得
- Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)
- 对Django框架架构和Request/Response处理流程的分析
- Django中的request和response
- 关于Django1.6版本的Template设置
- linux 部署django项目时出错: WebSocket connection,Unexpected response code: 200"