TemplateResponse agus SimpleTemplateResponseLink to this heading
Caighdeán:aicme: Is struchtúir statacha iad rudaí ~django.http.HttpResponse. Cuirtear bloc d'ábhar réamh-rindreáilte ar fáil dóibh tráth na tógála, agus cé gur féidir an t-ábhar sin a mhodhnú, níl sé i bhfoirm a fhágann go bhfuil sé éasca modhnuithe a dhéanamh.
Mar sin féin, is féidir go mbeadh sé tairbheach uaireanta ligean do mhaisitheoirí nó meán-earraí freagra a mhodhnó* tar éis dó* é a thógáil ag an dearcadh. Mar shampla, b'fhéidir gur mhaith leat an teimpléad a úsáidtear a athrú, nó sonraí breise a chur sa chomhthéacs.
Soláthraíonn TemplateResponse bealach chun é sin a dhéanamh. Murab ionann agus rudaí bunús:class: ~django.http.httpResponse, coinníonn rudaí TemplateResponse sonraí an teimpléid agus an chomhthéacs a chuir an dearcadh ar fáil chun an freagra a ríomh. Ní ríomhtar aschur deiridh an fhreagra go dtí go mbeidh sé ag teastáil, níos déanaí sa phróiseas freagartha.
rudaí SimpleTemplateResponseLink to this heading
- class SimpleTemplateResponseLink to this definition
tréitheLink to this heading
- SimpleTemplateResponse.template_nameLink to this definition
Ainm an teimpléid atá le déanamh. Glacann sé le réad teimpléad atá ag brath ar chúlra (amhail iad siúd ar ais ar:func: `~django.template.loader.get_template () `), ainm teimpléad, nó liosta ainmneacha teimpléad.
Sampla:
['foo.html', 'path/to/bar.html']
- SimpleTemplateResponse.context_dataLink to this definition
Na sonraí comhthéacs atá le húsáid agus an teimpléad á rindreáil. Caithfidh sé a: aicme: dict.
Sampla:
{'foo': 123}
- SimpleTemplateResponse.rendered_contentLink to this definition
Luach reatha a rinneadh an ábhair freagartha, ag baint úsáide as an teimpléad reatha agus na sonraí comhthéacs.
- SimpleTemplateResponse.is_renderedLink to this definition
Boolean a léiríonn an bhfuil an t-ábhar freagartha a rinneadh.
ModhannaLink to this heading
- SimpleTemplateResponse.__init__(template, context=None, content_type=None, status=None, charset=None, using=None, headers=None)Link to this definition
Cuireann sé réad a:class: ~Django.Template.Response.SimpleTemplateResponse leis an teimpléad, an comhthéacs, an cineál ábhair, stádas HTTP, agus tacar charta ar leith.
TeimpléadRud teimpléad atá ag brath ar chúlra (amhail iad siúd a d'fhaigh:func: `~django.template.loader.get_template () `), ainm teimpléad, nó liosta ainmneacha teimpléad.
comhthéacsA: aicme: ordach luachanna le cur le comhthéacs an teimpléid. De réir réamhshocraithe, is foclóir folamh é seo.
- ``cineál_ábhar ``
An luach atá san áireamh sa cheanntásc HTTP
Content-Type, lena n-áirítear an tsonraíocht cineál MIME agus an ionchódú tacar carachtair. Má shonraítearcontent_type, ansin úsáidtear a luach. Seachas sin, úsáidtear'text/html'.stádasAn cód stádais HTTP don fhreagra.
charsetAn charset ina ndéanfar an freagra a ionchódú. Mura dtugtar é bainfear as content_type`, agus mura n-éiríonn leis sin, úsáidfear an socrú: setting: DEFAULT_CHARSET.
`ÚsáidAn: Socrú: `AINM <TEMPLATES-NAME>`inneall teimpléad le húsáid chun an teimpléad a luchtú.
ceannairA: aicme: ordach ceanntásca HTTP le cur leis an bhfreagra.
- SimpleTemplateResponse.resolve_context(context)Link to this definition
Réamhphróiseálann sonraí comhthéacs a úsáidfear chun teimpléad a rindreáil. Glacann sé: aicme: ordach sonraí comhthéacs. De réir réamhshocraithe, filleann sé an chéanna: class: dict.
Athraigh an modh seo d'fhonn an comhthéacs a shaincheapadh.
- SimpleTemplateResponse.resolve_template(template)Link to this definition
Réitíonn sé an tsampla teimpléid le húsáid le haghaidh rindreáil. Glacann sé le réad teimpléad atá ag brath ar chúlra (amhail iad siúd ar ais ar:func: `~django.template.loader.get_template () `), ainm teimpléad, nó liosta ainmneacha teimpléad.
Filleann sé an tsampla réad teimpléad atá ag brath ar chúlra atá le léiriú
Athraigh an modh seo d'fhonn luchtú teimpléad a shaincheapadh.
- SimpleTemplateResponse.add_post_render_callback()Link to this definition
Cuir glaoch ar ais a ghairmfear tar éis an rindreáil a dhéanamh. Is féidir an crúca seo a úsáid chun oibríochtaí próiseála áirithe (mar shampla caching) a chur siar go dtí go mbeidh rindreáil tarlú.
Má rinneadh an:class: ~django.template.Response.SimpleTemplateResponse cheana féin, cuirfear an glaoch ar ais láithreach.
Nuair a thugtar air, cuirfear argóint amháin ar ais - an t-áis rendered:class: ~django.template.response.simpleTemplateResponse.
Má thugann an glaoch ar ais luach nach
None, úsáidfear é seo mar fhreagra in ionad an réad freagartha bunaidh (agus cuirfear ar aghaidh chuig an gcéad phost eile ag déanamh glaonna aisghlaonna srl.)
- SimpleTemplateResponse.render()Link to this definition
Socraíonn sé
response.contentdon toradh a fhaightear ar:attr: SimpleTemplateResponse.rendered_content, ritheann sé gach glaonna iar-rindreála, agus filleann sé an réad freagartha mar thoradh air.Ní bheidh éifeacht ag `render () ``ach an chéad uair a thugtar air. Ar ghlaonna ina dhiaidh sin, cuirfidh sé an toradh a fhaightear ón gcéad ghlao ar ais.
Rudaí TemplateResponseLink to this heading
- class TemplateResponseLink to this definition
Is fo-aicme é
TemplateResponsede:class: ~django.template.response.simpletemplateResponse a bhfuil a fhios aige faoin reatha:class: ~django.http.httpRequest.
ModhannaLink to this heading
- TemplateResponse.__init__(request, template, context=None, content_type=None, status=None, charset=None, using=None, headers=None)Link to this definition
Cuireann sé réad a:class: ~django.template.response.templateResponse leis an iarraidh, an teimpléad, an comhthéacs, an cineál ábhair, stádas HTTP, agus tacar charta a thugtar.
IarrataAn:class: ~django.http.httpRequest sampla.
TeimpléadRud teimpléad atá ag brath ar chúlra (amhail iad siúd a d'fhaigh:func: `~django.template.loader.get_template () `), ainm teimpléad, nó liosta ainmneacha teimpléad.
comhthéacsA: aicme: ordach luachanna le cur le comhthéacs an teimpléid. De réir réamhshocraithe, is foclóir folamh é seo.
- ``cineál_ábhar ``
An luach atá san áireamh sa cheanntásc HTTP
Content-Type, lena n-áirítear an tsonraíocht cineál MIME agus an ionchódú tacar carachtair. Má shonraítearcontent_type, ansin úsáidtear a luach. Seachas sin, úsáidtear'text/html'.stádasAn cód stádais HTTP don fhreagra.
charsetAn charset ina ndéanfar an freagra a ionchódú. Mura dtugtar é bainfear as content_type`, agus mura n-éiríonn leis sin, úsáidfear an socrú: setting: DEFAULT_CHARSET.
`ÚsáidAn: Socrú: `AINM <TEMPLATES-NAME>`inneall teimpléad le húsáid chun an teimpléad a luchtú.
ceannairA: aicme: ordach ceanntásca HTTP le cur leis an bhfreagra.
An próiseas rindreálaLink to this heading
Roimh a:class: ~Django.Template.Response.TemplateResponse is féidir sampla a thabhairt ar ais chuig an gcliant, caithfear é a léiriú. Glacann an próiseas rindreála léiriú idirmheánach teimpléad agus comhthéacs, agus casann sé isteach sa sruth béite deiridh is féidir a sheirbheáil don chliant.
Tá trí imthosca ann ina ndéanfar TemplateResponse a thaispeáint:
Nuair a dhéantar an cás
TemplateResponsea léiriú go sainráite, ag baint úsáide as an modh:meth: `SimpleTemplateResponse.render () `.Nuair a shocraítear ábhar an fhreagra go sainráite trí
freagra.contenta shannadh.Tar éis dul trí mheán-earraí freagartha teimpléad, ach sula dtéann sé trí mheán-earraí freagartha.
Ní féidir TemplateResponse a léiriú ach uair amháin. Socraíonn an chéad ghlao chuig:meth: SimpleTemplateResponse.render ábhar an fhreagra; ní athraíonn glaonna rindreála ina dhiaidh sin an t-ábhar freagartha.
Mar sin féin, nuair a shanntar response.content` go sainráite, cuirtear an t-athrú i bhfeidhm i gcónaí. Más mian leat iallach a chur ar an ábhar a athléiriú, is féidir leat an t-ábhar a rindreáiltear a athmheas, agus ábhar na freagartha a shannadh de láimh:
# Set up a rendered TemplateResponse
>>> from django.template.response import TemplateResponse
>>> t = TemplateResponse(request, "original.html", {})
>>> t.render()
>>> print(t.content)
Original content
# Re-rendering doesn't change content
>>> t.template_name = "new.html"
>>> t.render()
>>> print(t.content)
Original content
# Assigning content does change, no render() call required
>>> t.content = t.rendered_content
>>> print(t.content)
New content
Aisghlaonna iar-rindreálaLink to this heading
Ní féidir roinnt oibríochtaí - mar shampla caching - a dhéanamh ar theimpléad neamh-rindreáilte. Ní mór iad a dhéanamh ar fhreagra iomlán iomlán agus a rinneadh.
Má tá middleware á úsáid agat, is féidir leat é sin a dhéanamh. Soláthraíonn Middleware go leor deiseanna chun freagra a phróiseáil ar imeacht ó radharc. Má chuireann tú iompar sa mheán-earraí freagartha, ráthaítear go bhforghníomhaítear é tar éis rindreáil teimpléid a bheith tarlú.
Mar sin féin, má tá maisitheoir á úsáid agat, níl na deiseanna céanna ann. Láimhseálfar aon iompar a shainmhínítear i maisitheoir láithreach.
Chun cúiteamh as seo (agus aon chásanna úsáide comhchosúla eile), tugann :class: TemplateResponse deis duit aisghlaonna a chlárú a ghairmfear nuair a bheidh an rindreáil críochnaithe. Ag baint úsáide as an aisghlao seo, is féidir leat próiseáil chriticiúil a chur ar siar go dtí pointe inar féidir leat a ráthú go mbeidh ábhar rindreáilte ar fáil.
Chun glaonna iar-rindreála a shainiú, sainmhínigh feidhm a ghlacann argóint amháin - freagra - agus cláraigh an fheidhm sin leis an bhfreagra teimpléid:
from django.template.response import TemplateResponse
def my_render_callback(response):
# Do content-sensitive processing
do_post_processing()
def my_view(request):
# Create a response
response = TemplateResponse(request, "mytemplate.html", {})
# Register the callback
response.add_post_render_callback(my_render_callback)
# Return the response
return response
Gairmfear my_render_callback () ``tar éis don `mytemplate.html a rindreáil, agus cuirfear an sampla iomlán:class: TemplateResponse ar fáil mar argóint.
Má rinneadh an teimpléad cheana féin, cuirfear an glaoch ar ais láithreach.
Ag baint úsáide as TemplateResponse agus SimpleTemplateResponseLink to this heading
A: aicme: Is féidir réad TemplateResponse a úsáid in áit ar féidir gnáth:class: django.http.httpResponse a úsáid. Is féidir é a úsáid freisin mar mhalairt ar glao:func: `~django.shortcuts.render () `.
Mar shampla, filleann an radharc seo a leanas a:class: TemplateResponse le teimpléad agus comhthéacs ina bhfuil tacar ceisteanna:
from django.template.response import TemplateResponse
def blog_index(request):
return TemplateResponse(
request, "entry_list.html", {"entries": Entry.objects.all()}
)