Rudaí iarratais agus freagarthaLink to this heading
Forbhreathnú tapaLink to this heading
Úsáideann Django rudaí iarratais agus freagartha chun stát a rith tríd an gcóras.
Nuair a iarrtar leathanach, cruthaíonn Django réad: class: HttpRequest ina bhfuil meiteashonraí faoin iarratas. Ansin luchtaíonn Django an dearcadh cuí, ag rith an:class: HttpRequest mar an chéad argóint chuig an bhfeidhm amharc. Tá gach radharc freagrach as réad: class: HttpResponse a thabhairt ar ais.
Míníonn an doiciméad seo na APIs le haghaidh rudaí: class: HttpRequest agus:class: HttpResponse, atá sainmhínithe sa mhodúl:mod: django.http.
HttpRequest rudaíLink to this heading
- class HttpRequestLink to this definition
tréitheLink to this heading
Ba chóir gach tréith a mheas go léite amháin, mura luaitear a mhalairt.
- HttpRequest.schemeLink to this definition
Sreang a léiríonn scéim an iarratais (
httpnó https` de ghnáth).
- HttpRequest.bodyLink to this definition
An comhlacht iarratais amh-HTTP mar bytestring. Tá sé seo úsáideach chun sonraí a phróiseáil ar bhealaí éagsúla ná foirmeacha traidisiúnta HTML: íomhánna dénártha, ualach pá XML srl Chun sonraí foirme traidisiúnta a phróiseáil, bain úsáid as: attr: HttpRequest.post.
Is féidir leat léamh freisin ó HttpRequest` ag baint úsáide as comhéadan cosúil le comhad le:meth: HttpRequest.read nó:meth: HttpRequest.readline. Tabharfar
RawPostDataExceptiona rochtain ar an tréith ``corp ``*tar éis * an iarraidh a léamh le ceachtar de na modhanna srutha I/O seo.
- HttpRequest.pathLink to this definition
Sreang a léiríonn an cosán iomlán chuig an leathanach iarrtha, gan an scéim, an fearann nó an teaghrán fiosrúcháin san áireamh.
Sampla:
” /ceol/banda/the_beatles/"
- HttpRequest.path_infoLink to this definition
Faoi roinnt cumraíochtaí freastalaí gréasáin, roinntear an chuid den URL tar éis an ainm óstach i gcuid réimír script agus i gcuid faisnéise cosáin. Tá an chuid faisnéise cosáin den chosán sa tréith path_info` i gcónaí, is cuma cén freastalaí gréasáin atá á úsáid. Ag baint úsáide as seo in ionad:attr: ~httpRequest.path is féidir le do chód a dhéanamh níos éasca bogadh idir freastalaithe tástála agus imscartha.
Mar shampla, má tá an
WSGiscriptaliasd'iarratas socraithe go” /minfo", ansin d'fhéadfadhpatha bheith``” /minfo/music/bands/the_beatles/"`` agus path_info` a bheadh” /music/bands/the_beatles/".
- HttpRequest.methodLink to this definition
Sreang a léiríonn an modh HTTP a úsáidtear san iarratas. Ráthaítear go mbeidh sé seo uachtaracha. Mar shampla:
if request.method == "GET": do_something() elif request.method == "POST": do_something_else()
- HttpRequest.encodingLink to this definition
Sreang a léiríonn an t-ionchódú reatha a úsáidtear chun sonraí aighneachta foirme a dhíchódú (nó
None, rud a chiallaíonn an socrú: DEFAULT_CHARSET a úsáidtear an socrú: DEFAULT_CHARSET). Féadfaidh tú scríobh chuig an tréith seo chun an t-ionchódú a úsáidtear a athrú agus tú ag rochtain ar shonraí Úsáidfidh aon rochtain tréithe ina dhiaidh sin (mar shampla léamh ó:attr: GET nó: attr: POST `) an luach ``encoding` nua. Úsáideach má tá a fhios agat nach bhfuil na sonraí foirme san ionchódú: setting: DEFAULT_CHARSET.
- HttpRequest.content_typeLink to this definition
Sreang a léiríonn cineál MIME an iarratais, a pháirsítear ón gceannteideal
CONTENT_TYPE.
- HttpRequest.content_paramsLink to this definition
Foclóir de pharaiméadair eochair/luacha atá san áireamh sa cheanntásc
CONTENT_TYPE.
- HttpRequest.GETLink to this definition
Rud cosúil le foclóir ina bhfuil gach paraiméadar HTTP GET a thugtar. Féach an doiciméadúint:class: QueryDict thíos.
- HttpRequest.POSTLink to this definition
Rud cosúil le foclóir ina bhfuil gach paraiméadar HTTP POST a thugtar, ar choinníoll go bhfuil sonraí foirme san iarratas. Féach an doiciméadach:class: QueryDict thíos. Más gá duit rochtain a fháil ar shonraí amha nó neamh-fhoirme a chuirtear san iarratas, rochtain a fháil air seo tríd an tréith: attr: `HttpRequest.body `ina ionad.
Is féidir go bhféadfadh iarratas teacht isteach trí POST le foclóir folamh
POST ``- má iarrtar foirm tríd an modh POST HTTP ach nach bhfuil sonraí foirme san áireamh ann. Dá bhrí sin, níor chóir duit `if request.posta úsáid chun seiceáil maidir le húsáid an modh POST; ina ionad sin, bain úsáid asif request.method == “POST"(féach: attr: HttpRequest.method).Ní chuimsíonn
POST ```` `` `` `` `` `` `` `` `` `` ` Féach: attr: COMHAID.
- HttpRequest.COOKIESLink to this definition
Foclóir ina bhfuil na fianáin go léir. Is teaghráin iad eochracha agus luachanna.
- HttpRequest.FILESLink to this definition
Rud cosúil le foclóir ina bhfuil gach comhad uaslódáilte. <input type="file" name="">Is é gach eochair i FILES` an ainm ``` ón ```` `` . Is é gach luach i `FILES` ná: aicme: ~django.core.files.uploadedfile.uploadedfile.
Féach: doc: /topics/files le haghaidh tuilleadh faisnéise.
Ní bheidh sonraí i
FILESach amháin má bhí POST an modh iarratais agus má bhíenctype="multipart/form-data"ag an<form>a chuir post chuig an iarraidh. Seachas sin, is réad bán cosúil le foclóir é FILES`.
- HttpRequest.METALink to this definition
Foclóir ina bhfuil gach ceanntásc HTTP atá ar fáil. Braitheann ceanntála atá ar fáil ar an gcliant agus ar an bhfreastalaí, ach seo roinnt samplaí:
CONTENT_LENGTH- Fad an chomhlachta iarratais (mar shreang).CONTENT_TYPE- Cineál MIME an chomhlachta iarratais.HTTP_ACCEPT- Cineálacha ábhair inghlactha don fhreagra.HTTP_ACCEPT_ENCODING- Ionchódaithe inghlactha don fhreagra.HTTP_ACCEPT_LANGUAGE-- Teangacha inghlactha don fhreagra.HTTP_HOST- An ceannteideal Óstach HTTP a sheol an cliant.HTTP_REFERER- An leathanach tagartha, más ann.HTTP_USER_AGENT-- Sreang gníomhaire úsáideora an chliaint.QUERY_STRING- An teaghrán fiosrúcháin, mar shreang aonair (neamhpháirseáilte).REMOTE_ADDR- Seoladh IP an chliaint.REMOTE_HOST- Ainm óstach an chliaint.REMOTE_USER- An t-úsáideoir a fhíordheimhnigh an fhreastalaí gréasáin, más ann.REQUEST_METHOD-- Sreang mar"GET"nó"POST".SERVER_NAME- Ainm óstach an fhreastalaí.SERVER_PORT- Calafort an fhreastalaí (mar shreang).
Seachas
CONTENT_LENGTHagus CONTENT_TYPE`, mar a thugtar thuas, déantar aon cheannteidil HTTP san iarratas a thiontú go heochracha META` trí gach carachtar a thiontú go uachchlóir, béim a chur in ionad aon bhreitheanna agus réimír HTTP_` a chur leis an ainm. Mar sin, mar shampla, déanfaí ceanntásc ar a dtugtarX-Bendera mhapáil leis an eochairMETAHTTP_X_BENDER.Tabhair faoi deara go mbaineann: djadmin: runserver gach ceannteideal le béim san ainm, ionas nach bhfeicfidh tú iad i META`. Cuireann sé seo cosc ar cheannteanntáil bunaithe ar dhébhríocht idir béim agus scaoileanna araon ag normalú le béim i n-athróga timpeallachta WSGI. Meaitseálann sé le hiompar freastalaithe gréasáin cosúil le Nginx agus Apache 2.4+.
HttpRequest.headersis a simpler way to access all HTTP-prefixed headers, plusCONTENT_LENGTHandCONTENT_TYPE.
- HttpRequest.headersLink to this definition
Rud cás-neamh-íogair, cosúil le dict a sholáthraíonn rochtain ar gach ceannteideal réamhshocraithe HTTP (móide
Content-Fad ``agus ``Content-Type) ón iarratas.Déantar ainm gach ceanntásc a stíliú le teidil cásáil (m.sh. ``Gníomhaire Usáideora ``) nuair a thaispeántar é. Is féidir leat rochtain a fháil ar cheanntásca go mí-íogair:
>>> request.headers {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6', ...)} >>> "User-Agent" in request.headers True >>> "user-agent" in request.headers True >>> request.headers["User-Agent"] Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) >>> request.headers["user-agent"] Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) >>> request.headers.get("User-Agent") Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) >>> request.headers.get("user-agent") Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)Le húsáid i dteimpléid Django, mar shampla, is féidir ceanntásca a fheiceáil suas freisin ag baint úsáide as béim in ionad hiphens:
{{ request.headers.user_agent }}
- HttpRequest.resolver_matchLink to this definition
Sampla de:class: ~django.urls.resolverMatch a léiríonn an URL réitithe. Ní shocraítear an tréith seo ach tar éis réiteach URL a dhéanamh, rud a chiallaíonn go bhfuil sé ar fáil i ngach radharc ach ní i lár a fhorghníomhaítear sula ndéantar réiteach URL (is féidir leat é a úsáid in:meth: process_view áfach).
- HttpRequest.multipart_parser_classLink to this definition
-
The class used to parse
multipart/form-datarequest data. By default, this isdjango.http.multipartparser.MultiPartParser.You can set this attribute to use a custom multipart parser, either via middleware or directly in views:
from django.http.multipartparser import MultiPartParser class CustomMultiPartParser(MultiPartParser): def parse(self): post = QueryDict(mutable=True) files = MultiValueDict() # Custom processing logic here return post, files # In middleware or view: request.multipart_parser_class = CustomMultiPartParser
Tréithe socraithe de réir cód iarrataisLink to this heading
Ní shocraíonn Django na tréithe seo féin ach úsáideann sé iad má shocraíonn d'fheidhmchlár iad.
- HttpRequest.current_appLink to this definition
The
urltemplate tag will use its value as thecurrent_appargument toreverse().
- HttpRequest.urlconfLink to this definition
Úsáidfear é seo mar an URLConf fréimhe don iarratas reatha, ag cur thar an socrú: setting: ROOT_URLCONF. Féach: ref: how django-processes-a-request le haghaidh sonraí.
Is féidir
urlconfa shocrú goNonechun aon athruithe a rinne middleware roimhe seo a chur ar ais agus filleadh ar an: setting: ROOT_URLCONF a úsáid.
- HttpRequest.exception_reporter_filterLink to this definition
Úsáidfear é seo in ionad:setting: DEFAULT_EXCEPTION_REPORTER_FILTER don iarratas reatha. Féach: Ref: `custom-earror-reports `le haghaidh sonraí.
- HttpRequest.exception_reporter_classLink to this definition
Úsáidfear é seo in ionad:setting: DEFAULT_EXCEPTION_REPORTER don iarratas reatha. Féach: Ref: `custom-earror-reports `le haghaidh sonraí.
Tréithe arna leagan síos ag middlewareLink to this heading
Socraíonn cuid de na middleware atá san áireamh in aipeanna contrib Django tréithe ar an iarratas. Mura bhfeiceann tú an tréith ar iarratas, bí cinnte go bhfuil an rang lár-earraí cuí liostaithe in:setting: MIDDLEWARE.
- HttpRequest.sessionLink to this definition
Ón:class: ~django.contrib.sessions.middleware.sessionMiddleware: Rud inléite agus inscríofa, cosúil le foclóir a léiríonn an seisiún reatha.
- HttpRequest.siteLink to this definition
From the
CurrentSiteMiddleware: An instance ofSiteorRequestSiteas returned byget_current_site()representing the current site.
- HttpRequest.userLink to this definition
Ón:class: ~django.contrib.auth.middleware.AuthenticationMiddleware: Sampla de:setting: AUTH_USER_MODEL a léiríonn an t-úsáideoir logáilte isteach faoi láthair. Mura bhfuil an t-úsáideoir logáilte isteach faoi láthair, socraítear
userar shampla de:class: ~django.contrib.auth.models.anonymousUser. Is féidir leat iad a insint óna chéile la:attr: ~django.contrib.auth.models.user.is_Authenticated, mar sin:if request.user.is_authenticated: ... # Do something for logged-in users. else: ... # Do something for anonymous users.The
auser()can be used to access the user in async contexts.
ModhannaLink to this heading
- HttpRequest.auser()Link to this definition
Ón:aicme: ~django.contrib.auth.middleware.AuthenticationMiddleware: Coroutine. Tugann sé sampla de:setting: AUTH_USER_MODEL a léiríonn an t-úsáideoir atá logáilte isteach faoi láthair. Mura bhfuil an t-úsáideoir logáilte isteach faoi láthair, cuirfidh
ausersampla de:class: ~django.contrib.auth.models.anonymousUser ar ais. Tá sé seo cosúil leis an tréith: attr: user ach oibríonn sé i gcomhthéacsanna async.
- HttpRequest.get_host()Link to this definition
Filleann sé óstach tionscnaimh an iarratais ag baint úsáide as faisnéis ó na ceannteidil
HTTP_X_FORWARDED_HOST(ife:setting: USE_X_FORWARDED_HOST cumasaithe) agus HTTP_HOST`, san ord sin. Mura soláthraíonn siad luach, úsáideann an modh teaglaim deSERVER_NAMEagusSERVER_PORTmar a mionsonraítear in:pep: 3333.Sampla:
"127.0.0. 1:8000 “<1035>Ardaíonn sé
django.core.exceptions.disallowedHostmura bhfuil an t-óstach in:setting: ALLOWED_HOSTS nó go bhfuil an t-ainm fearainn neamhbhailí de réir: rfc: 1034/:rfc: 1035.
- HttpRequest.get_port()Link to this definition
Tugann calafort tionscnaimh an iarratais ar ais ag baint úsáide as faisnéis ó na hathróga HTTP_X_FORWARDED_PORT` (ife:setting: USE_X_FORWARDED_PORT cumasaithe) agus
SERVER_PORTMETAathróga, san ord sin.
- HttpRequest.get_full_path()Link to this definition
Tugann sé an
pathar ais, móide teaghrán ceisteanna curtha leis, más infheidhme.Sampla:
” /minfo/music/banna/the_beatles/? print=true"
- HttpRequest.get_full_path_info()Link to this definition
Cosúil le: Meth: get_full_path, ach úsáideann sé: attr: path_info in ionad:attr: path.
Sampla:
” /ceol/banda/the_beatles/? print=true"
- HttpRequest.build_absolute_uri(location=None)Link to this definition
Tugann sé an fhoirm iomlán URI de ``suíomh ``ar ais. Mura gcuirtear aon suíomh ar fáil, socraítear an suíomh go ``request.get_full_path () ``.
Más URI iomlán é an suíomh cheana féin, ní athrófar é. Seachas sin tógtar an URI iomlán ag baint úsáide as na hathróga freastalaí atá ar fáil san iarratas seo. Mar shampla:
>>> request.build_absolute_uri() 'https://example.com/music/bands/the_beatles/?print=true' >>> request.build_absolute_uri("/bands/") 'https://example.com/bands/' >>> request.build_absolute_uri("https://example2.com/bands/") 'https://example2.com/bands/'
- HttpRequest.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)Link to this definition
Tugann luach fianán ar ais do fhianán sínithe, nó ardaíonn sé eisceacht
django.core.signing.badsignaturemura bhfuil an síniú bailí a thuilleadh. Má sholáthraíonn tú an argóintréamhshocraithecuirfear an t-eisceacht faoi chois agus cuirfear an luach réamhshocraithe sin ar ais ina ionad sin.The optional
saltargument can be used to put the cookie into a separate signature namespace. If supplied, themax_ageargument will be checked against the signed timestamp attached to the cookie value to ensure the cookie is not older thanmax_ageseconds.Cookies signed by older Django versions are accepted by default for backwards compatibility. Set
SIGNED_COOKIE_LEGACY_SALT_FALLBACKtoFalseto reject them.Mar shampla:
>>> request.get_signed_cookie("name") 'Tony' >>> request.get_signed_cookie("name", salt="name-salt") 'Tony' # assuming cookie was set using the same salt >>> request.get_signed_cookie("nonexistent-cookie") KeyError: 'nonexistent-cookie' >>> request.get_signed_cookie("nonexistent-cookie", False) False >>> request.get_signed_cookie("cookie-that-was-tampered-with") BadSignature: ... >>> request.get_signed_cookie("name", max_age=60) SignatureExpired: Signature age 1677.3839159 > 60 seconds >>> request.get_signed_cookie("name", False, max_age=60) FalseFéach: doc: `síniú cripteagrafach' le haghaidh tuilleadh faisnéise. </topics/signing>
- HttpRequest.is_secure()Link to this definition
Tugann sé ar ais
Truemá tá an t-iarratas slán; is é sin, má rinneadh é le HTTPS.
- HttpRequest.get_preferred_type(media_types)Link to this definition
Returns the preferred mime type from
media_types, based on theAcceptheader, orNoneif the client does not accept any of the provided types.Assuming the client sends an
Acceptheader oftext/html,application/json;q=0.8:>>> request.get_preferred_type(["text/html", "application/json"]) "text/html" >>> request.get_preferred_type(["application/json", "text/plain"]) "application/json" >>> request.get_preferred_type(["application/xml", "text/plain"]) NoneIf the mime type includes parameters, these are also considered when determining the preferred media type. For example, with an
Acceptheader oftext/vcard;version=3.0,text/html;q=0.5, the return value ofrequest.get_preferred_type()depends on the available media types:>>> request.get_preferred_type( ... [ ... "text/vcard; version=4.0", ... "text/vcard; version=3.0", ... "text/vcard", ... "text/directory", ... ] ... ) "text/vcard; version=3.0" >>> request.get_preferred_type( ... [ ... "text/vcard; version=4.0", ... "text/html", ... ] ... ) "text/html" >>> request.get_preferred_type( ... [ ... "text/vcard; version=4.0", ... "text/vcard", ... "text/directory", ... ] ... ) None(For further details on how content negotiation is performed, see RFC 9110 Section 12.5.1.)
Most browsers send
Accept: */*by default, meaning they don't have a preference, in which case the first item inmedia_typeswould be returned.Setting an explicit
Acceptheader in API requests can be useful for returning a different content type for those consumers only. See Sampla idirbheartaíochta ábhair for an example of returning different content based on theAcceptheader.
- HttpRequest.accepts(mime_type)Link to this definition
Returns
Trueif the request'sAcceptheader matches themime_typeargument:>>> request.accepts("text/html") TrueMost browsers send
Accept: */*by default, so this would returnTruefor all content types.See Sampla idirbheartaíochta ábhair for an example of using
accepts()to return different content based on theAcceptheader.
- HttpRequest.read(size=None)Link to this definition
- HttpRequest.readline()Link to this definition
- HttpRequest.readlines()Link to this definition
- HttpRequest.__iter__()Link to this definition
Modhanna a chur i bhfeidhm comhéadan cosúil le comhad chun léamh ó shampla HttpRequest`. Fágann sé seo gur féidir iarratas atá ag teacht isteach a ithe ar bhealach sruthú. Is é cás úsáide coitianta ná ualach mór XML a phróiseáil le parser athraitheach gan crann XML iomlán a thógáil i gcuimhne.
Mar gheall ar an gcomhéadan caighdeánach seo, is féidir sampla
HttpRequesta chur ar aghaidh go díreach chuig parser XML amsúil:class: ~xml.etree.elementTree.ElementTree:import xml.etree.ElementTree as ET for element in ET.iterparse(request): process(element)
Rud QuerydictLink to this heading
- class QueryDictLink to this definition
I réad:class: HttpRequest, is cásanna de Django.http.QueryDict` iad tréithe: ~HttpRequest.Get agus:attr: ~HttpRequest.post `, aicme cosúil le foclóir saincheaptha chun déileáil le luachanna iolracha don eochair chéanna. Tá sé seo riachtanach toisc go dtéann roinnt eilimintí foirme HTML, go háiri <select multiple>the ``, luachanna iolracha don eochair chéanna.
Beidh na QueryDict`s ag Request.Post` agus Request.Get inathraithe nuair a bhíonn rochtain orthu i ngnáthtimthriall iarrata/freagartha. Chun leagan inathraithe a fháil ní mór duit: meth: Querydict.copy a úsáid.
ModhannaLink to this heading
QueryDict implements all the standard dictionary methods because it's
a subclass of dictionary. Exceptions are outlined here:
- QueryDict.__init__(query_string=None, mutable=False, encoding=None)Link to this definition
Cuireann sé réad
Querydictbunaithe arquery_string.>>> QueryDict("a=1&a=2&c=3") <QueryDict: {'a': ['1', '2'], 'c': ['3']}>Mura gcuirtear
query_stringisteach, beidh an Querydict` mar thoradh air folamh (ní bheidh aon eochracha ná luachanna aige).Beidh an chuid is mó de
Querydicta thagann leat, agus go háirithe iad siúd agRequest.PostagusRequest.Get, neathraithe. Má tá ceann á dhéanamh agat féin, is féidir leat é a dhéanamh inathraithe trímutable=Truea chur chuig a ``__init__ () ``.Déanfar teaghráin chun eochracha agus luachanna a shocrú a thiontú ó
encodinggo str`. Mura bhfuilencodingsocraithe, déanann sé réamhshocraithe:setting: DEFAULT_CHARSET.
- classmethod QueryDict.fromkeys(iterable, value='', mutable=False, encoding=None)Link to this definition
Cruthaíonn sé
QueryDictnua le heochracha óiterableagus gach luach atá comhionann leluach. Mar shampla:>>> QueryDict.fromkeys(["a", "a", "b"], value="val") <QueryDict: {'a': ['val', 'val'], 'b': ['val']}>
- QueryDict.__getitem__(key)Link to this definition
Returns the last value for the given key; or an empty list (
[]) if the key exists but has no values. Raisesdjango.utils.datastructures.MultiValueDictKeyErrorif the key does not exist. (This is a subclass of Python's standardKeyError, so you can stick to catchingKeyError.)>>> q = QueryDict("a=1&a=2&a=3", mutable=True) >>> q.__getitem__("a") '3' >>> q.__setitem__("b", []) >>> q.__getitem__("b") []
- QueryDict.__setitem__(key, value)Link to this definition
Socraíonn an eochair a thugtar go
[luach](liosta a bhfuil a ghné aonairluach). Tabhair faoi deara nach féidir é seo, mar fheidhmeanna foclóra eile a bhfuil fo-iarsmaí acu, a ghlaoch ach ar Querydict` athraithe (mar shampla ceann a cruthaíodh via: meth: Querydict.copy).
- QueryDict.__contains__(key)Link to this definition
Tugann sé ar ais
Truemá tá an eochair tugtha socraithe. Ligeann sé seo duit, m.sh., if “foo” in request.get` a dhéanamh.
- QueryDict.get(key, default=None)Link to this definition
Úsáideann sé an loighic chéanna amha:meth: __getitem__, le crúca chun luach réamhshocraithe a thabhairt ar ais mura bhfuil an eochair ann.
- QueryDict.setdefault(key, default=None)Link to this definition
Cosúil le: Meth: dict.setdefault, ach amháin go n-úsáideann sé: meth: __setitem__ go hinmheánach.
- QueryDict.update(other_dict)Link to this definition
Tógann sé
Querydictnó foclóir. Cosúil le: Meth: dict.update, seachas aigh* cuireann sé leis na míreanna foclóra reatha seachas iad a chur in ionad. Mar shampla:>>> q = QueryDict("a=1", mutable=True) >>> q.update({"a": "2"}) >>> q.getlist("a") ['1', '2'] >>> q["a"] # returns the last '2'
- QueryDict.items()Link to this definition
Cosúil le: Meth: dict.items, ach amháin go n-úsáideann sé seo an loighic luach deiridh céanna mar: meth: __getitem__ agus filleann sé réad athraitheora in ionad réad amharc. Mar shampla:
>>> q = QueryDict("a=1&a=2&a=3") >>> list(q.items()) [('a', '3')]
- QueryDict.values()Link to this definition
Cosúil le: Meth: dict.values, ach amháin go n-úsáideann sé seo an loighic luach deiridh céanna mar: meth: __getitem__ agus filleann sé athraitheoir in ionad réad amharc. Mar shampla:
>>> q = QueryDict("a=1&a=2&a=3") >>> list(q.values()) ['3']
Ina theannta sin, tá na modhanna seo a leanas ag Querydict:
- QueryDict.copy()Link to this definition
Tugann cóip den réad ar ais ag baint úsáid:func: copy.deepcopy. Beidh an cóip seo inathraithe fiú mura raibh an bunaidh.
- QueryDict.getlist(key, default=None)Link to this definition
Tugann liosta de na sonraí ar ais leis an eochair iarrtha. Tugann liosta folamh ar ais mura bhfuil an eochair ann agus is é
réamhshocraitheNone. Ráthaítear liosta a thabhairt ar ais mura bhfuil liosta an luach réamhshocraithe a chuirtear ar fáil.
- QueryDict.setlist(key, list_)Link to this definition
Socraíonn an eochair a thugtar go
list_(gan cosúil: meth: __setitem__).
- QueryDict.appendlist(key, item)Link to this definition
Cuireann sé mír leis an liosta inmheánach a bhaineann leis an eochair.
- QueryDict.setlistdefault(key, default_list=None)Link to this definition
Cosúil le: Meth: setdefault, ach amháin go dtógann sé liosta luachanna in ionad luach amháin.
- QueryDict.lists()Link to this definition
Like
items(), except it includes all values, as a list, for each member of the dictionary. For example:>>> q = QueryDict("a=1&a=2&a=3") >>> q.lists() [('a', ['1', '2', '3'])]
- QueryDict.pop(key)Link to this definition
Tugann liosta luachanna ar ais don eochair a thugtar agus baineann sé iad ón bhfoclóir. Ardaíonn sé
Keyerrormura bhfuil an eochair ann. Mar shampla:>>> q = QueryDict("a=1&a=2&a=3", mutable=True) >>> q.pop("a") ['1', '2', '3']
- QueryDict.popitem()Link to this definition
Baineann sé ball treallach den fhoclóir (ós rud é nach bhfuil aon choincheap ordaithe ann), agus tugann sé tuple dhá luach ina bhfuil an eochair agus liosta de na luachanna go léir don eochair. Ardaíonn sé
Keyerrornuair a ghairtear ar fhoclóir folamh. Mar shampla:>>> q = QueryDict("a=1&a=2&a=3", mutable=True) >>> q.popitem() ('a', ['1', '2', '3'])
- QueryDict.dict()Link to this definition
Tugann sé ionadaíocht
dictarQuerydictar ais. I gcás gach péire (eochair, liosta) i QueryDict`, beidh (eochair, mír) agdict, áit a bhfuil mír eilimint amháin den liosta, ag baint úsáide as an loighic chéanna amha:meth: QueryDict. __getitem__:>>> q = QueryDict("a=1&a=3&a=5") >>> q.dict() {'a': '5'}
- QueryDict.urlencode(safe=None)Link to this definition
Filleann sreang de na sonraí i bhformáid sreangán fiosrúcháin. Mar shampla:
>>> q = QueryDict("a=2&b=3&b=5") >>> q.urlencode() 'a=2&b=3&b=5'Úsáid an paraiméadar
sábháiltechun carachtair nach dteastaíonn ionchódú uathu a rith. Mar shampla:>>> q = QueryDict(mutable=True) >>> q["next"] = "/a&b/" >>> q.urlencode(safe="/") 'next=/a%26b/'
HttpResponse rudaíLink to this heading
- class HttpResponseLink to this definition
I gcodarsnacht le:class: rudaí HttpRequest, a chruthaíonn Django go huathoibríoch, :class: Is iad rudaí HttpResponse freagracht ort. Tá gach radharc a scríobhann tú freagrach as: class: HttpResponse a chur ar aghaidh, a dhaonrú agus a thabhairt ar ais.
Tá an rang:class: HttpResponse ina gcónaí sa mhodúl:mod: django.http.
ÚsáidLink to this heading
Steaghráin a rithLink to this heading
Is é an úsáid tipiciúil ná ábhar an leathanaigh, mar shreang, bytestring, nó:class: memoryview, a chur chuig an tógálaí:class: HttpResponse:
>>> from django.http import HttpResponse
>>> response = HttpResponse("Here's the text of the web page.")
>>> response = HttpResponse("Text only, please.", content_type="text/plain")
>>> response = HttpResponse(b"Bytestrings are also accepted.")
>>> response = HttpResponse(memoryview(b"Memoryview as well."))
Ach más mian leat ábhar a chur le chéile, is féidir leat ``freagra ``a úsáid mar réad cosúil le comhad:
>>> response = HttpResponse()
>>> response.write("<p>Here's the text of the web page.</p>")
>>> response.write("<p>Here's another paragraph.</p>")
Athraitheoirí a rithLink to this heading
Faoi dheireadh, is féidir leat HttpResponse` a chur ar athraitheoir seachas teaghráin. Itheoidh HttpResponse an t-athraitheoir láithreach, stóráilfidh sé a ábhar mar shreang, agus caitheann sé é. Dúntar rudaí le modh ``close () ``mar shampla comhaid agus gineadóirí láithreach.
Más gá duit an freagra a shruthú ón iterator chuig an gcliant, ní mór duit an rang:class: StreamInghttPresponse a úsáid ina ionad.
Réimsí ceanntásc a shocLink to this heading
Chun réimse ceanntásc a shocrú nó a bhaint i do fhreagra, bain úsáid:attr: HttpResponse.headers:
>>> response = HttpResponse()
>>> response.headers["Age"] = 120
>>> del response.headers["Age"]
Is féidir leat ceanntásca a ionramháil freisin trí do fhreagra a chóireáil mar fhoclóir:
>>> response = HttpResponse()
>>> response["Age"] = 120
>>> del response["Age"]
Cuireann sé seo seachfhálaí chuig HttpResponse.Headers`, agus is é an comhéadan bunaidh a thairgeann HttpResponse`.
Nuair a bhíonn an comhéadan seo á úsáid agat, murab ionann agus foclóir, ní ardaíonn del Keyerror` mura bhfuil an réimse ceannteideal ann.
Is féidir leat ceanntásca a shocrú freisin ar instantiation:
>>> response = HttpResponse(headers={"Age": 120})
Chun na réimsí ceanntásc Cache-Control agus Vary a shocrú, moltar na modhanna: func: ~django.utils.cache.patch_cache_control agus:func: ~django.utils.cache.patch_vary_headers a úsáid ó:mod: django.utils.cache, ós rud é gur féidir luachanna iolracha, scartha le camóg a bheith ag na réimsí seo. Cinntíonn na modhanna “paiste” nach mbaintear luachanna eile, m.sh. a chuireann meán-earraí leis.
Ní féidir línte nua a bheith i réimsí ceanntásc HTTP. Ardóidh iarracht réimse ceanntásc ina bhfuil carachtar líne nua (CR nó LF) a shocrú BadHeaderROR
Ag rá leis an mbrabhsálaí an freagra a chaitheamh mar cheangaltán comhadLink to this heading
Chun a rá don bhrabhsálaí caitheamh leis an bhfreagra mar cheangaltán comhad, socraigh na ceannteidil Content-Type agus ``Content-Disposition`. Mar shampla, seo mar a d'fhéadfá scarbhileog Microsoft Excel a thabhairt ar ais:
>>> response = HttpResponse(
... my_data,
... headers={
... "Content-Type": "application/vnd.ms-excel",
... "Content-Disposition": 'attachment; filename="foo.xls"',
... },
... )
Níl aon rud Django-sonrach faoin gceannteideal ``Content-Disposition`, ach is furasta dearmad a dhéanamh ar an gcomhréir, mar sin tá sé curtha san áireamh anseo.
tréitheLink to this heading
- HttpResponse.contentLink to this definition
Bytestring a léiríonn an t-ábhar, ionchódaithe ó shreang más gá.
- HttpResponse.textLink to this definition
A string representation of
HttpResponse.content, decoded using the response'sHttpResponse.charset(defaulting toUTF-8if empty).
- HttpResponse.cookiesLink to this definition
A
http.cookies.SimpleCookieobject holding the cookies included in the response.
- HttpResponse.headersLink to this definition
Rud cás-neamhíogair, cosúil le dict a sholáthraíonn comhéadan do gach ceannteideal HTTP ar an bhfreagra, seachas ceannteideal Set-Cookie. Féach: Ref: socruithe ceanncheadr-fields agus:attr: HttpResponse.cookies.
- HttpResponse.charsetLink to this definition
Sreang a léiríonn an tacar charta ina ndéanfar an freagra a ionchódú. Mura dtugtar é ag am institiúcháin
HttpResponse, bainfear as content_type` é agus mura n-éireoidh leis sin, úsáidfear an socrú:setting: DEFAULT_CHARSET.
- HttpResponse.status_codeLink to this definition
<9110 #section -15>An: RFC: Cód stádais HTTP don fhreagra.
Unless:attr: Socraítear réasúna_phrase go sainráite, modhnófar luach
`status_codelasmuigh den tógálaí luachréas_phrasea mhodhnú freisin.
- HttpResponse.reason_phraseLink to this definition
An frása chúis HTTP don fhreagra. <9110 #section -15.1>Úsáideann sé na frásaí cúis réamhshocraithe: rfc: `HTTP caighdeán' s.
Mura bhfuil sé socraithe go sainráite, socraítear
réas_phraseag luach: attr: status_code.
- HttpResponse.streamingLink to this definition
Tá sé seo i gcónaí
bréag.Tá an tréith seo ann ionas gur féidir le middleware freagraí sruthú a chaitheamh go difriúil ó fhreagairtí rialta
- HttpResponse.closedLink to this definition
Fíormá tá an freagra dúnta.
ModhannaLink to this heading
- HttpResponse.__init__(content=b'', content_type=None, status=200, reason=None, charset=None, headers=None)Link to this definition
Cuireann sé réad
HttpResponseleis an ábhar leathanaigh, an cineál ábhair agus na ceannteidil a thugtar.Is minic gurb é
contentná iterator, bytestring, :class: memoryview, nó teaghrán. Déanfar cineálacha eile a thiontú go bytestring tríd a n-ionadaíocht teaghrán a ionchódú. Ba chóir d'athraitheoirí teaghráin nó bytestrings a thabhairt ar ais agus déanfar iad sin a cheangal le chéile chun ábhar an fhreagra a fhoirmiú.Is é
content_typean cineál MIME a chomhlánann go roghnach ag ionchódú tacar carachtair agus úsáidtear é chun an ceannteideal HTTPContent-Typea líonadh. Mura sonraítear é, cruthaítear é le'text/html'agus socruithe: DEFAULT_CHARSET agus socruithe:DEFAULT_CHARSET`, de réir réamhshocraithe: ``"text/html; charset = utf-8".statusis the HTTP status code for the response. You can use Python'shttp.HTTPStatusfor meaningful aliases, such asHTTPStatus.NO_CONTENT.Is é
réasan frása freagartha HTTP. Mura gcuirtear ar fáil, úsáidfear abairt réamhshocraithe.Is é
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.Is é
headersa: aicme: dict ceannteidil HTTP don fhreagra.
- HttpResponse.__setitem__(header, value)Link to this definition
Socraíonn an t-ainm ceanntásc tugtha don luach tugtha. Ba chóir go mbeadh
ceannteannairagus luach` araon teaghráin.
- HttpResponse.__delitem__(header)Link to this definition
Scriosann sé an ceanntásc leis an ainm tugtha. Teipeann sé go ciúin mura bhfuil an ceanntásc ann. Cás-neamh-íogair.
- HttpResponse.__getitem__(header)Link to this definition
Tugann sé an luach don ainm ceanntásc tugtha ar ais. Cás-neamh-íogair.
- HttpResponse.get(header, alternate=None)Link to this definition
Tugann sé an luach don cheanntásc a thugtar, nó
malartmura bhfuil an ceannteideal ann.
- HttpResponse.has_header(header)Link to this definition
Tugann sé “True`` nó False` bunaithe ar sheiceáil cás-neamh-íogair do cheanntásc leis an ainm tugtha.
- HttpResponse.items()Link to this definition
Gníomhartha cosúil:meth: dict.items do cheanntásca HTTP ar an bhfreagra.
- HttpResponse.setdefault(header, value)Link to this definition
Socraíonn sé ceanntásc mura bhfuil sé socraithe cheana féin.
- HttpResponse.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=False, httponly=False, samesite=None)Link to this definition
Socraíonn fianán. Tá na paraiméadair mar an gcéanna le réad fianáin: class: ~http.cookies.morsel sa leabharlann caighdeánach Python.
Ba chóir go mbeadh
max_agea:class: ~datetime.timedelta réad, líon sláireach soicind, nóNone(réamhshocraithe) más chóir go mairfeadh an fianán ach chomh fada agus seisiún brabhsálaí an chliaint. Mura sonraítear ```deigh', ríomhfar é.Ba chóir go mbeadh
expiresina shreang sa fhormáid"Wdy, DD-mon-yy HH:MM:SS GMT"` nó réad ``datetime.datetimei UTC. Más réaddatetimeéscaipe, ríomhfar anmax_age.Úsáid
domainmás mian leat fianán tras-fearainn a shocrú. Mar shampla, socraíonndomain="example.com"fianán atá inléite ag na fearainn www.example.com, blog.example.com, srl. Seachas sin, ní bheidh fianán inléite ach ag an bhfearann a shocraigh é.Úsáid
secure=truemura dteastaíonn uait nach seolfar an fianán chuig an bhfreastalaí ach nuair a dhéantar iarratas leis an scéimhttps.Úsáid HttpOnly=True` más mian leat JavaScript taobh an chliaint a chosc ó rochtain a bheith agat ar an bhfianán.
Is bratach é HTTPOnly atá san áireamh i gceannteideal freagartha Set-Cookie HTTP. Tá sé mar chuid den <6265 #section -4.1.2.6> chaighdeán:rfc: RFC 6265 le haghaidh fianáin agus féadann sé a bheith ina bhealach úsáideach chun an baol go bhfaighidh script taobh an chliaint rochtain ar na sonraí cosanta fianán a mhaolú.
Úsáid
sameSite='strict'nósameSite='Lax'chun a rá don bhrabhsálaí gan an fianán seo a sheoladh agus iarratas tras-bhunús á dhéanamh agat. Ní thacaíonn gach brabhsálaí le SameSite, mar sin ní athsholáthar é ar chosaint CSRF Django, ach beart cosanta domhain é.Úsáid
sameSite='none'(teaghrán) chun a rá go sainráite go seoltar an fianán seo le gach iarratas ar an láithreán céanna agus tras-láithreán.
- HttpResponse.set_signed_cookie(key, value, salt='', max_age=None, expires=None, path='/', domain=None, secure=False, httponly=False, samesite=None)Link to this definition
Like
set_cookie(), but cryptographic signing the cookie before setting it. Use in conjunction withHttpRequest.get_signed_cookie(). You can use the optionalsaltargument to put the cookie into a separate signature namespace, but you will need to remember to pass it to the correspondingHttpRequest.get_signed_cookie()call.
- HttpResponse.delete_cookie(key, path='/', domain=None, samesite=None)Link to this definition
Scriosann sé an fianán leis an eochair a thugtar. Teipeann sé go ciúin mura bhfuil an eochair ann.
Mar gheall ar an mbealach a oibríonn fianáin, ba chóir go mbeadh path` agus
domainna luachanna céanna a d'úsáid tú iset_cookie ()- ar shlí eile ní fhéadfar an fianán a scriosadh.
- HttpResponse.close()Link to this definition
This method is called at the end of the request directly by the WSGI or ASGI server.
- HttpResponse.write(content)Link to this definition
Déanann an modh seo réad cosúil le comhad mar shampla an:class: HttpResponse.
- HttpResponse.flush()Link to this definition
Déanann an modh seo réad cosúil le comhad mar shampla an:class: HttpResponse.
- HttpResponse.tell()Link to this definition
Déanann an modh seo réad cosúil le comhad mar shampla an:class: HttpResponse.
- HttpResponse.getvalue()Link to this definition
Tugann luach: attr: HttpResponse.content ar ais. Déanann an modh seo réad cosúil le sruth mar shampla an:class: HttpResponse.
- HttpResponse.readable()Link to this definition
I gcónaí
Bréag. Déanann an modh seo réad cosúil le sruth mar shampla an:class: HttpResponse.
- HttpResponse.seekable()Link to this definition
I gcónaí
Bréag. Déanann an modh seo réad cosúil le sruth mar shampla an:class: HttpResponse.
- HttpResponse.writable()Link to this definition
“Fíor” i gcónaí. Déanann an modh seo réad cosúil le sruth mar shampla an:class: HttpResponse.
- HttpResponse.writelines(lines)Link to this definition
Scríobhann liosta línte don fhreagra. Ní chuirtear deighilteoirí líne leis. Déanann an modh seo réad cosúil le sruth mar shampla an:class: HttpResponse.
Fo-aicmí HttpResponse`Link to this heading
Cuimsíonn Django roinnt fo-aicmí HttpResponse a láimhseálann cineálacha éagsúla freagraí HTTP. Cosúil le HttpResponse`, tá na fo-aicmí seo ina gcónaí in:mod: django.http.
- class HttpResponseRedirectLink to this definition
The first argument to the constructor is required -- the path to redirect to. This can be a fully qualified URL (e.g.
'https://www.yahoo.com/search/'), an absolute path with no domain (e.g.'/search/'), or even a relative path (e.g.'search/'). In that last case, the client browser will reconstruct the full URL itself according to the current path.The constructor accepts an optional
preserve_requestkeyword argument that defaults toFalse, producing a response with a 302 status code. Ifpreserve_requestisTrue, the status code will be 307 instead.The constructor accepts an optional
max_lengthkeyword argument to override the maximum allowed length for the redirect URL. You can set it toNoneto disable the length check.See
HttpResponsefor other optional constructor arguments.- urlLink to this definition
Léiríonn an tréith léite amháin seo an URL a atreoróidh an freagra chuig (comhionann leis an gceannteideal freagartha ``Suíomh ``).
- class HttpResponsePermanentRedirectLink to this definition
Like
HttpResponseRedirect, but it returns a permanent redirect (HTTP status code 301) instead of a "found" redirect (status code 302). Whenpreserve_request=True, the response's status code is 308.
- class HttpResponseNotModifiedLink to this definition
Ní ghlacann an tógálaí aon argóintí agus níor cheart aon ábhar a chur leis an bhfreagra seo. Úsáid é seo chun a ainmniú nár modhnaíodh leathanach ó iarratas deireanach an úsáideora (cód stádais 304).
- class HttpResponseBadRequestLink to this definition
Gníomhaíonn sé díreach cosúil:class: HttpResponse ach úsáideann sé cód stádais 400.
- class HttpResponseNotFoundLink to this definition
Gníomhaíonn sé díreach cosúil:class: HttpResponse ach úsáideann sé cód stádais 404.
- class HttpResponseForbiddenLink to this definition
Gníomhaíonn sé díreach cosúil:class: HttpResponse ach úsáideann sé cód stádais 403.
- class HttpResponseNotAllowedLink to this definition
Cosúil le: class: HttpResponse, ach úsáideann sé cód stádais 405. Teastaíonn an chéad argóint don tógálaí: liosta de na modhanna ceadaithe (m.sh.
['GET', 'POST']).
- class HttpResponseGoneLink to this definition
Gníomhaíonn sé díreach cosúil:class: HttpResponse ach úsáideann sé cód stádais 410.
- class HttpResponseServerErrorLink to this definition
Gníomhaíonn sé díreach cosúil:class: HttpResponse ach úsáideann sé cód stádais 500.
Ranganna freagartha saincheapthaLink to this heading
If you find yourself needing a response class that Django doesn't provide, you
can create it with the help of http.HTTPStatus. For example:
from http import HTTPStatus
from django.http import HttpResponse
class HttpResponseNoContent(HttpResponse):
status_code = HTTPStatus.NO_CONTENT
JSONResponse rudaíLink to this heading
- class JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs)Link to this definition
An:class: fo-aicme HttpResponse a chabhraíonn le freagra ionchódaithe JSON a chruthú. Oidhreacht aige an chuid is mó d'iompar óna sáraicme le lánúin difríochtaí:
Tá a cheanntásc réamhshocraithe
Content-Typesocraithe ag:mimetype: application/json.Ba chóir go mbeadh an chéad pharaiméadar,
sonraí ``, mar shampla ``dict. Má tá an paraiméadarsábháilte ``socraithe go ``False(féach thíos) is féidir é a bheith ar aon réad inserializable JSON.Úsáidfear an
encoder, atá réamhshocraithe to:class: django.core.serializers.json.djangojsonEncoder, chun na sonraí a shraitheadh. Féach: Ref: `JSON sraitheoireacht <serialization-formats-json>`le haghaidh tuilleadh sonraí faoin sraitheoir seo.Tá an paraiméadar boolean
sábháilte ``réamhshocraithe go ``True. Má tá sé socraithe goFalse, is féidir aon rud a chur ar aghaidh le haghaidh sraitheadh (ar shlí eile ní cheadaítear ach cásannadict). Má tásábháilteTrueagus má chuirtear réad neamh-dictar aghaidh mar an chéad argóint, ardófar a:exc: TypeError.Is foclóir argóintí eochairfhocal é an paraiméadar
json_dumps_paramsle dul chuig an nglao ``json.dumps () ``a úsáidtear chun an freagra a ghiniúint.
ÚsáidLink to this heading
D'fhéadfadh cuma a bheith ar úsáid tipiciúil:
>>> from django.http import JsonResponse
>>> response = JsonResponse({"foo": "bar"})
>>> response.content
b'{"foo": "bar"}'
Rud neamh-fhoclóra a shraitheadhLink to this heading
D'fhonn rudaí seachas dict` a shraitheadh ní mór duit an paraiméadar sábháilte a shocrú go False:
>>> response = JsonResponse([1, 2, 3], safe=False)
Gan dul ar safe=False, ardófar a:exc: TypeError.
Tabhair faoi deara go bhfuil API bunaithe ar rudaí dict níos leathnaithe, níos solúbtha, agus go ndéanann sé níos éasca comhoiriúnacht ar aghaidh a choinneáil. Dá bhrí sin, ba cheart duit rudaí neamh-dict a sheachaint i bhfreagra ionchódaithe JSON.
An t-ionchódóir JSON réamhshocraithe aLink to this heading
Más gá duit rang ionchódóra JSON difriúil a úsáid is féidir leat an paraiméadar ``encoder` a chur ar aghaidh chuig an modh tógálaí:
>>> response = JsonResponse(data, encoder=MyJSONEncoder)
Streaminghttpreresponse rudaíLink to this heading
- class StreamingHttpResponseLink to this definition
Úsáidtear an rang:class: StreamInghttPresponse chun freagra a shruthlú ó Django chuig an mbrabhsálaí.
Úsáid shamplach de:class: StreamInghttPresponse faoi WSGI is ea ábhar a shruthlú nuair a thógfadh an freagra rófhada nó úsáideadh an iomarca cuimhne. <streaming-csv-files>Mar shampla, tá sé úsáideach le haghaidh: ref: `comhaid mhóra CSV a ghiniúint `.
Tá breithnithe feidhmíochta ann agus é seo á dhéanamh agat, áfach. Tá Django, faoi WSGI, deartha le haghaidh iarratais ghearrshaoil. Ceanglóidh freagraí sruthú próiseas oibrithe ar feadh tréimhse iomlán na freagartha. D'fhéadfadh droch-fheidhmíocht a bheith mar thoradh air seo
Go ginearálta, déanfá tascanna daor lasmuigh den timthriall iarrata-freagartha, seachas dul i ngleic le freagra sruthaithe.
Agus tú ag freastalú faoi ASGI, áfach, ní gá a: class: StreamInghttPrésponse stop a chur ar iarratais eile a sheirbheáil agus iad ag fanacht le I/O. Osclaíonn sé seo an fhéidearthacht iarratais fadré ar ábhar sruthú agus patrúin a chur i bhfeidhm mar vótaíocht fhada, agus imeachtaí a sheoltar ó fhreastalaí.
Fiú amháin faoi nóta ASGI, níor cheart: StreamInghttPresponse a úsáid ach amháin i gcásanna ina bhfuil sé riachtanach go hiomlán nach ndéantar an t-ábhar iomlán a athrú sula n-aistrítear na sonraí chuig an gcliant. Toisc nach féidir rochtain a fháil ar an ábhar, ní féidir le go leor middleware feidhmiú de ghnáth. Mar shampla ní féidir na ceannteidil Etag agus Content-Length a ghiniúint le haghaidh freagraí sruthú.
Ní fo-aicme de:class: HttpResponse é an:class: HttpResponse, toisc go bhfuil API beagán difriúil aige. Mar sin féin, tá sé beagnach comhionann, leis na difríochtaí suntasacha seo a leanas:
Ba chóir athraitheoir a thabhairt dó a thugann bytestrings, :class: memoryview, nó teaghráin mar ábhar. Agus tú ag freastal faoi WSGI, ba chóir go mbeadh sé seo ina athraitheoir sioncronaithe. Agus tú ag freastal faoi ASGI, ba chóir go mbeadh sé ina athraitheoir async.
Ní féidir leat rochtain a fháil ar a ábhar, ach amháin tríd an réad freagartha féin a athrá. Níor chóir go dtarlódh sé seo ach nuair a chuirtear an freagra ar ais chuig an gcliant: níor cheart duit an freagra a athrú duit féin.
Faoi WSGI déanfar an freagra a athdhéanamh go sioncrónach. Faoi ASGI déanfar an freagra a athrá go asincrónach. (Sin é an fáth go gcaithfidh an cineál iterator an prótacal atá á úsáid agat a mheaitseáil.)
Chun timpiste a sheachaint, déanfar cineál athraitheora mícheart a mhapáil leis an gcineál ceart le linn athraithe, agus ardófar rabhadh, ach chun é seo a dhéanamh caithfear an t-athraitheoir a ithe go hiomlán, rud a sháraíonn an cuspóir a: class: StreamInghttPresponse a úsáid ar chor ar bith.
Níl aon tréith ``ábhar ``aige. Ina áit sin, tá a: attr: ~StreamInghttPresponse.streaming_content tréith aige. Is féidir é seo a úsáid i lár earraí chun an freagra a fhilleadh in-athrá, ach níor cheart é a ithe.
It has no
textattribute, as it would require iterating the response object.Ní féidir leat na modhanna réad cosúil le comhad
tell () ``nó `scríobh ()a úsáid. Má dhéantar é sin, beidh eisceacht ann.
Tá an bunaicme: Class: HttpResponseBase coitianta idir: aicme: HttpResponse agus:class: StreamInghttPresponse.
tréitheLink to this heading
- StreamingHttpResponse.streaming_contentLink to this definition
Athraitheoir ar an ábhar freagartha, ionchódaithe bytestring de réir: attr: HttpResponse.charSet.
- StreamingHttpResponse.status_codeLink to this definition
<9110 #section -15>An: RFC: Cód stádais HTTP don fhreagra.
Unless:attr: Socraítear réasúna_phrase go sainráite, modhnófar luach
`status_codelasmuigh den tógálaí luachréas_phrasea mhodhnú freisin.
- StreamingHttpResponse.reason_phraseLink to this definition
An frása chúis HTTP don fhreagra. <9110 #section -15.1>Úsáideann sé na frásaí cúis réamhshocraithe: rfc: `HTTP caighdeán' s.
Mura bhfuil sé socraithe go sainráite, socraítear
réas_phraseag luach: attr: status_code.
- StreamingHttpResponse.streamingLink to this definition
Tá sé seo i gcónaí ``Fíor`.
- StreamingHttpResponse.is_asyncLink to this definition
Boolean a léiríonn an bhfuil: attr: StreamInghttPresponse.streaming_content is iterator asincrónach nó nach bhfuil.
Tá sé seo úsáideach do mheánearraí a theastaíonn uathu fillte:attr: StreamInghttPresponse.streaming_content.
Dícheangail láimhseáilLink to this heading
Má dhícheanglaíonn an cliant le linn freagra sruthú, cuirfidh Django an coroutine atá ag láimhseáil an freagra ar ceal. Más mian leat acmhainní a ghlanadh de láimh, is féidir leat é sin a dhéanamh tríd an Asyncio.CancelleDerror` a ghabháil:
async def streaming_response():
try:
# Do some work here
async for chunk in my_streaming_iterator():
yield chunk
except asyncio.CancelledError:
# Handle disconnect
...
raise
async def my_streaming_view(request):
return StreamingHttpResponse(streaming_response())
Ní thaispeánann an sampla seo ach conas dícheangal cliant a láimhseáil agus an freagra ag sruthú. <async-handling-disconnect>Má dhéanann tú oibríochtaí fadtéarmacha i do thuairim sula bhfilleann tú an réad StreaminghttPresponse ar ais, ansin b'fhéidir gur mhaith leat freis:ref: `dícheangail a láimhseáil sa radharc `féin.
Rudaí FileResponseLink to this heading
- class FileResponse(open_file, as_attachment=False, filename='', **kwargs)Link to this definition
FileResponseis a subclass ofStreamingHttpResponseoptimized for binary files. It uses wsgi.file_wrapper if provided by the wsgi server, otherwise it streams the file out in small chunks.Má tá
as_attachment=True, socraítear an ceannteidealContent-Disposition` go ``attachment, a iarrann ar an mbrabhsálaí an comhad a thairiscint don úsáideoir mar íoslódáil. Seachas sin, ní shocrófar ceanntáscContent-Disposition` le luach ``inline(réamhshocraithe an bhrabhsálaí) ach amháin má tá ainm comhaid ar fáil.Mura bhfuil ainm ag
open_filenó mura bhfuil ainm open_file` oiriúnach, tabhair ainm comhaid saincheaptha ag baint úsáide as an paraiméadarfile. Tabhair faoi deara má chuireann tú réad cosúil le comhad cosúil leIO.Bytesio, is é do chúramsearch () ``é sula ndéantar é a chur chuig `FileResponse.Socraítear an ceannteideal
Content-Lengthgo huathoibríoch nuair is féidir é a thuairisciú ó ábharopen_file.Socraítear an ceannteideal
Content-Typego huathoibríoch nuair is féidir é a thuairisciú ónainm comhad ``, nó ainm `open_file.
Glacann FileResponse le haon rud cosúil le comhad le hábhar dénártha, mar shampla comhad oscailte i mód dénártha mar sin:
>>> from django.http import FileResponse
>>> response = FileResponse(open("myfile.png", "rb"))
Dúnfar an comhad go huathoibríoch, mar sin ná oscail é le bainisteoir comhthéacs.
ModhannaLink to this heading
- FileResponse.set_headers(open_file)Link to this definition
Glaofar an modh seo go huathoibríoch le linn an tionscnamh freagartha agus socraítear ceannteidil éagsúla (
Content-Fad ``, `Content-Type, agus`` Content-Disposition) ag brath ar ``oscailte_comhad.
Aicme HttpResponseBaseLink to this heading
- class HttpResponseBaseLink to this definition
Tá an rang:class: HttpResponseBase coitianta do gach freagra Django. Níor chóir é a úsáid chun freagraí a chruthú go díreach, ach d'fhéadfadh sé a bheith úsáideach chun cineál-sheiceáil.