Tuairimí bonnLink to this heading
Soláthraíonn na trí rang seo a leanas cuid mhaith den fheidhmiúlacht a theastaíonn chun radhairc Django a chruth Féadfaidh tú smaoineamh orthu mar thuairimí tuismitheoir*, ar féidir leo féin a úsáid nó iad a oidhreacht uathu. Ní fhéadfaidh siad na cumais go léir a theastaíonn le haghaidh tionscadail a sholáthar, agus sa chás sin tá tuairimí Meascins agus Cineálacha bunaithe ar aicme ann.
Tá go leor de na tuairimí rang-bhunaithe ionsuite Django ag oidhreacht ó thuairimí rang-bhunaithe eile nó meascáin éagsúla. Toisc go bhfuil an slabhra oidhreachta seo an-tábhachtach, déantar na ranganna sinsear a dhoiciméadú faoin teideal ranna**Sinsear (MRO) **. Is acrainm é MRO d'Ordú Réitigh Modh.
AmharcLink to this heading
- class django.views.generic.base.ViewLink to this definition
An rang amharc bonn. Tá gach tuairim eile bunaithe ar rang-bhunaithe ag oidhreacht ón rang bonn seo. Ní dearcadh cineálach é go docht agus dá bhrí sin is féidir é a allmhairiú ó django.views.
Cairt Sreabhadh Modh
Amharcanna sampla.py:
from django.http import HttpResponse from django.views import View class MyView(View): def get(self, request, *args, **kwargs): return HttpResponse("Hello, World!")Sampla urls.py:
from django.urls import path from myapp.views import MyView urlpatterns = [ path("mine/", MyView.as_view(), name="my-view"), ]Aithníocht
- http_method_namesLink to this definition
An liosta d'ainmneacha modh HTTP a nglacfaidh an dearcadh seo leis.
Réamhshocraithe:
["get", "post", "put", "patch", "delete", "head", "options", "trace"]
Modhaí
- classmethod as_view(**initkwargs)Link to this definition
Tugann sé dearcadh inghlaonta ar ais a ghlacann iarratas agus a thugann freagra ar ais:
response = MyView.as_view()(request)Tá tréithe
view_classagusview_initkwargssa radharc ar ais.<how-django-processes-a-request>Nuair a thugtar an radharc le linn an timthriall iarrata/freagartha, sannann an modh:meth: setup an modh:class: ~django.http.http.httpRequest do thréith
requestan radharc, agus aon argóintí seasaimh agus/nó eochairfhoir:ref: gabhadh ón bpatrún URL go dtí na tréithe args` agus kwargs` faoi seach. Ansin: Meth: tugtar “seoladh”.Má shainmhíníonn fo-aicme
Viewláimhseálaithe modh asincrónacha (async def), marcálfaidhas_view () ``an glaoch ar ais mar fheidhm coroutine. Ardófar eisceacht ``ImproperlyConfiguredmá shainmhínítear láimhseálaithe asincrónach (async def) agus sioncrónach (def`) araon ar rang amharc amháin.
- setup(request, *args, **kwargs)Link to this definition
Déanann sé tionscnamh eochair radharc roimh: meth: `sheoladh `.
Assigns the
HttpRequestto the view'srequestattribute, and any positional and/or keyword arguments captured from the URL pattern to theargsandkwargsattributes, respectively.Má tá an modh seo á shárú agat, ní mór duit glaoch ar ``super () ``.
- dispatch(request, *args, **kwargs)Link to this definition
An chuid
tuairimden tuairim -- an modh a ghlacann le argóintiarratmóide argóintí, agus a thugann freagra HTTP ar ais.Déanfaidh an cur i bhfeidhm réamhshocraithe iniúchadh ar an modh HTTP agus déanfaidh sé iarracht é a tharmligean chuig modh a mheaitseálann leis an modh HTTP; tarmligfear
GETchuig get () `,`` POST ```` post () `, agus mar sin de.De réir réamhshocraithe, tarmligfear iarratas
HEADchuigget () ``. Más gá duit iarratais ``HEADa láimhseáil ar bhealach difriúil náGET, is féidir leat an modh ``head () ``a shárú. Féach:ref: tacaíocht ear-http-methods mar shampla.
- http_method_not_allowed(request, *args, **kwargs)Link to this definition
Má ghlaoadh ar an radharc le modh HTTP nach dtacaíonn sé, tugtar an modh seo ina ionad sin.
The default implementation returns
HttpResponseNotAllowedwith the list of allowed methods in theAllowheader, as required by RFC 7231. The response body is empty.
- options(request, *args, **kwargs)Link to this definition
Láimhseálann freagra ar iarratais ar an briathar HTTP OPTIONS. Tugann sé freagra ar ais leis an gceannteideal ``Allow ``ina bhfuil liosta d'ainmneacha modh HTTP ceadaithe an amharc.
Má tá na láimhseálaithe modhanna HTTP eile ar an rang asincrónach (
async def) ansin filteofar an freagra i bhfeidhm coroutine le húsáid le ``ag fanacht `.
``TeimpléadView ``Link to this heading
- class django.views.generic.base.TemplateViewLink to this definition
Déanann sé teimpléad ar leith, leis an gcomhthéacs ina bhfuil paraiméadair gabhadh san URL.
**Sinsear (MRO) **
Oidhreann an dearcadh seo modhanna agus tréithe ó na tuairimí seo a leanas:
Cairt Sreabhadh Modh
Amharcanna sampla.py:
from django.views.generic.base import TemplateView from articles.models import Article class HomePageView(TemplateView): template_name = "home.html" def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context["latest_articles"] = Article.objects.all()[:5] return contextSampla urls.py:
from django.urls import path from myapp.views import HomePageView urlpatterns = [ path("", HomePageView.as_view(), name="home"), ]Comhthéacs
Daonra (trí:class: ~django.views.generic.base.contextMixin) leis na hargóintí eochairfhocal a ghabhadh ón bpatrún URL a d'fhreastail an dearcadh.
Is féidir leat comhthéacs a chur leis freisin ag baint úsáide as an argóint eochairfhocal: attr: ~django.views.generic.base.contextMixin.extra_context le haghaidh: meth: ~django.views.generic.base.view.as_view.
RedirectviewLink to this heading
- class django.views.generic.base.RedirectViewLink to this definition
Atreoraíonn sé chuig URL ar leith.
D'fhéadfadh go mbeadh formáidiú teaghrán i stíl foclóra san URL a thugtar, a dhéanfar idirphóladh i gcoinne na bparaiméadair a ghabhadh san URL. Toisc go ndéantar idirpháirtíocht eochairfhocal i gcónaí* (fiú mura ndéantar aon argóintí isteach), ní mór aon charachtair
"%"sa URL a scríobh mar"%%"ionas go ndéanfaidh Python iad a thiontú go comhartha faoin gcéad amháin ar aschur.Más é
None ``an URL a thugtar, cuirfidh Django ``HttpResponseGone(410) ar ais.**Sinsear (MRO) **
Oidhreann an dearcadh seo modhanna agus tréithe ón radharc seo a leanas:
Cairt Sreabhadh Modh
Amharcanna sampla.py:
from django.shortcuts import get_object_or_404 from django.views.generic.base import RedirectView from articles.models import Article class ArticleCounterRedirectView(RedirectView): permanent = False query_string = True pattern_name = "article-detail" def get_redirect_url(self, *args, **kwargs): article = get_object_or_404(Article, pk=kwargs["pk"]) article.update_counter() return super().get_redirect_url(*args, **kwargs)Sampla urls.py:
from django.urls import path from django.views.generic.base import RedirectView from article.views import ArticleCounterRedirectView, ArticleDetailView urlpatterns = [ path( "counter/<int:pk>/", ArticleCounterRedirectView.as_view(), name="article-counter", ), path("details/<int:pk>/", ArticleDetailView.as_view(), name="article-detail"), path( "go-to-django/", RedirectView.as_view(url="https://www.djangoproject.com/"), name="go-to-django", ), ]Aithníocht
- urlLink to this definition
An URL le atreorú chuig, mar shreang. Nó ``None ``chun earráid HTTP 410 (Iomte) a ardú.
- pattern_nameLink to this definition
Ainm an phatrún URL le atreorú chuig. Déanfar aisiompú ag baint úsáide as na hargaí agus na kwargs céanna a chuirtear isteach don dearcadh seo.
- permanentLink to this definition
Cibé an chóir go mbeadh an t-atreorú buan. Is é an t-aon difríocht anseo ná an cód stádais HTTP ar ais. Má tá
True, ansin úsáidfidh an t-atreorú cód stádais 301. Má táFalse, úsáidfidh an t-atreorú cód stádais 302. De réir réamhshocraithe, is ébuanFalse`.
- query_stringLink to this definition
Cibé an gcaithfidh tú dul ar feadh an sreangán fiosrúcháin GET chuig an suíomh nua. Má tá
True, ansin cuirtear an teaghrán fiosrúcháin leis an URL. Má táFalse, cuirtear an teaghrán fiosrúcháin a chaitheamh. De réir réamhshocraithe, is équery_stringFalse.
- preserve_requestLink to this definition
-
Whether to preserve the HTTP method and body during the redirect. If
True, then the redirect will use status code 307 instead of 302, or 308 instead of 301 whenpermanentisTrue. By default,preserve_requestisFalse.
Modhaí
- get_redirect_url(*args, **kwargs)Link to this definition
Tógann sé an spriocURL le haghaidh athatreorú.
<how-django-processes-a-request>Is argóintí seasaimh agus/nó eochairfhocal iad na hargóintí args` agus
kwargs: ref: gabhadh ón bpatrún URL, faoi seach.Úsáideann an cur i bhfeidhm réamhshocraithe:attr: url `mar shreang tosaigh agus déanann sé leathnú paraiméadair ainmnithe ``%` sa sreang sin ag baint úsáide as na grúpaí ainmnithe a ghabhadh san URL.
Má tá: attr: url” socraithe, iarrann ``get_redirect_url () ``an: attr: `pattern_name a aisiompú ag baint úsáide as an méid a gabhadh sa URL (úsáidtear grúpaí ainmnithe agus gan ainmnithe araon).
Má iarrann: attr: query_string, cuirfidh sé an teaghrán fiosrúcháin leis an URL a ghintear freisin. Féadfaidh fo-aicmí aon iompar is mian leo a chur i bhfeidhm, fad is a thabharfaidh an modh sreang URL réidh le hathreorú.