前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django源码学习-15-SimpleTemplateResponse

Django源码学习-15-SimpleTemplateResponse

作者头像
小团子
发布2019-08-13 15:00:39
7300
发布2019-08-13 15:00:39
举报
文章被收录于专栏:数据云团数据云团

Django源码学习-14-JsonResponse

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

TemplateResponse提供了一种方法。与基本HttpResponse对象不同 ,TemplateResponse对象保留视图提供的模板和上下文的详细信息以计算响应。在响应过程中稍后需要时,不会计算响应的最终输出。

继承链:

代码语言:javascript
复制
HttpResponse --> SimpleTemplateResponse --> TemplateResponse

① SimpleTemplateResponse 对象

属性

  • SimpleTemplateResponse.template_name

要呈现的模板的名称。接受依赖于后端的模板对象(例如返回的对象 get_template()),模板名称或模板名称列表。

代码语言:javascript
复制
['index.html, 'path/to/header.html']
  • SimpleTemplateResponse.context_data

呈现模板时要使用的上下文数据。它必须是一个 dict。

代码语言:javascript
复制
{'number': 123}
  • SimpleTemplateResponse.rendered_content

使用当前模板和上下文数据的响应当前呈现值内容。

  • SimpleTemplateResponse.is_rendered

一个布尔值,指示是否已呈现响应内容。

方法

代码语言:javascript
复制
__init__(template, context=None, content_type=None, status=None, charset=None, using=None)
  • 处理上下文,接收dict类型的上下文内容,默认返回同样的dict,重写用以实现对上下文做额外的处理。
代码语言:javascript
复制
resolve_context(context)
  • 接收由(get_template()返回的)后台相关的模板对象,模板名字,或者多个模板名字组成的列表。
代码语言:javascript
复制
resolve_template(template)
  • 添加渲染完成后的回调函数,如果该方法运行时渲染已完成,回调函数会被立即调用。
代码语言:javascript
复制
add_post_render_callback()
  • 检查is_rendered,调用rendered_content属性,启动渲染,将实例的content属性设置为rendered_content的内容,调用回调函数(如果有),返回最终响应。该方法仅仅在初次被调用时生效:首先检查is_rendered,为False才会进行渲染,当渲染后会将is_renderd置为True。
代码语言:javascript
复制
render()

TemplateResponse可以用在任何HttpResponse可以使用的地方

代码语言:javascript
复制
from django.template.response import TemplateResponse

def index(request):
    return TemplateResponse(request, 'article_list.html', {'articles': Articles.objects.all()})
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档