Radhairc TógthaLink to this heading

Déantar roinnt de na tuairimí ionsuite Django a dhoiciméadú in:doc: /topics/http/views chomh maith le háiteanna eile sa doiciméadú.

Freastal ar chomhaid atá i bhforLink to this heading

static.serve(request, path, document_root, show_indexes=False)Link to this definition

D'fhéadfadh go mbeadh comhaid seachas sócmhainní statacha do thionscadail ar mhaith leat, ar mhaithe le háisiúlacht, go bhfreastal Django duit i bhforbairt áitiúil. Is féidir an dearcadh: Func: ~django.views.static.serve a úsáid chun freastal ar aon eolaire a thugann tú dó. (Níl an dearcadh seo ** cruaite le húsáid táirgeachta agus níor cheart é a úsáid ach mar chúnamh forbartha; ba cheart duit na comhaid seo a sheirbheáil i dtáirgeadh ag baint úsáide as fíor-fhreastalaí gréasáin tosaigh).

Is é an sampla is dóichí ná ábhar uaslódáilte ón úsáideoir in:setting: MEDIA_ROOT. Tá django.contrib.staticfiles beartaithe le haghaidh sócmhainní statacha agus níl aon láimhseáil ionsuite aige do chomhaid uaslódáilte úsáideora, ach is féidir leat Django freastal ar do thú:setting: MEDIA_ROOT trí rud éigin mar seo a chur le do URLConf:

Code
from django.conf import settings
from django.urls import re_path
from django.views.static import serve

# ... the rest of your URLconf goes here ...

if settings.DEBUG:
    urlpatterns += [
        re_path(
            r"^media/(?P<path>.*)$",
            serve,
            {
                "document_root": settings.MEDIA_ROOT,
            },
        ),
    ]

Tabhair faoi deara, glacann an snippet le do: setting: tá luach 'media/' ag MEDIA_URL. Glaofar sé seo ar an amharc: :func: ~django.views.static.serve, ag dul sa chosán ón URLConf agus an paraiméadar (riachtanach) document_root.

Ós rud é go bhféadfadh sé a bheith beagán deacair an patrún URL seo a shainiú, seolann Django le feidhm chúntóra beag URL: func: ~django.conf.urls.static.static a ghlacann mar pharaiméadair an réimír amhail: setting: MEDIA_URL agus cosán ponctha chuig radharc, mar shampla ``django.views.static.serve'`. Cuirfear aon pharaiméadar feidhme eile ar aghaidh go trédhearcach chuig an radharc.

Tuairimí earráideLink to this heading

Tagann Django le cúpla tuairim de réir réamhshocraithe chun earráidí HTTP a láimhseáil. Chun iad seo a shárú le do thuairimí saincheaptha féin, féach:ref: customizing-error-views.

An radharc 404 (ní aimsíodh an leathanach)Link to this heading

defaults.page_not_found(request, exception, template_name='404.html')Link to this definition

Nuair a ardaíonn tú: exc: ~django.http.http404 ó laistigh de radharc, luchtaíonn Django dearcadh speisialta atá dírithe ar earráidí 404 a láimhseáil. De réir réamhshocraithe, is é an view:func: django.views.defaults.page_not_found, a tháirgeann teachtaireacht “Not Found” nó a luchtaíonn agus a léiríonn an teimpléad 404.html má chruthaigh tú é i do eolaire teimpléad fréimhe.

Cuirfidh an dearcadh réamhshocraithe 404 dhá athróg chuig an teimpléad: request_path`, arb é an URL a raibh an earráid mar thoradh air, agus exception, ar léiriú úsáideach é ar an eisceacht a spreag an dearcadh (m.sh. ina bhfuil aon teachtaireacht a chuirtear chuig Http404 ar leith).

Trí rud le tabhairt faoi deara faoi 404 tuairimí:

  • Tugtar ar an radharc 404 freisin mura bhfaigheann Django meaitseáil tar éis gach abairt rialta sa URLConf a sheiceáil.

  • Tá an radharc 404 ag rith a:class: ~django.template.requestContext agus beidh rochtain aige ar athróga a sholáthraíonn do phróiseálaithe comhthéacs teimpléad (m.sh. MEDIA_URL`).

  • Má tá: Socrú: “DEBUG” socraithe go True (i do mhodúl socruithe), ansin ní úsáidfear do radharc 404 riamh, agus taispeánfar do URLConf ina ionad sin, le roinnt faisnéise dífhabhtaithe.

An radharc 500 (earráid freastalaí)Link to this heading

defaults.server_error(request, template_name='500.html')Link to this definition

Ar an gcaoi chéanna, déanann Django iompar cásanna speisialta i gcás earráidí rith sa chód amharc. Má bhíonn eisceacht mar thoradh ar radharc, glaoifidh Django, de réir réamhshocraithe, ar an amharc django.views.defaults.server_error, a tháirgeann teachtaireacht “Earráid Freastalaí” nó a luchtaíonn agus a léiríonn an teimpléad 500.html má chruthaigh tú é i d'eolaire teimpléad fréimhe.

Ní chuireann an dearcadh réamhshocraithe 500 aon athróg chuig an teimpléad 500.html agus déantar é le Context` folamh chun an seans go mbeidh earráidí breise a laghdú.

Má tá: Socrú: “DEBUG” socraithe go True (i do mhodúl socruithe), ansin ní úsáidfear do radharc 500 riamh, agus taispeánfar an rianaireacht ina ionad sin, le roinnt faisnéise dífhabhtaithe.

An radharc 403 (HTTP Toirmiscthe)Link to this heading

defaults.permission_denied(request, exception, template_name='403.html')Link to this definition

Sa chomh céanna leis na tuairimí 404 agus 500, tá dearcadh ag Django 403 earráid Toirmiscthe a láimhseáil. Má bhíonn eisceacht 403 mar thoradh ar radharc ansin glaoifidh Django, de réir réamhshocraithe, ar an radharc django.views.defaults.permission_denied.

Luchtaíonn agus tugann an radharc seo an teimpléad 403.html i do eolaire teimpléad fréimhe, nó mura bhfuil an comhad seo ann, freastalaíonn an téacs “403 Toirmiscthe” ina ionad sin, mar: rfc: 9110 #section -15.5.4 (an Sonraíocht HTTP 1.1). Tá ``eisceacht' sa chomhthéacs teimpléid, arb é sin an léiriú teaghrán ar an eisceacht a spreag an dearcadh.

Tá eisceacht a spreagtar django.views.defaults.permission_denied ag a:exc: ~django.core.exceptions.permissionDenied. Chun rochtain a dhiúltú i radharc is féidir leat cód mar seo a úsáid:

Code
from django.core.exceptions import PermissionDenied


def edit(request, pk):
    if not request.user.is_staff:
        raise PermissionDenied
    # ...

An radharc 400 (droch-iarratas)Link to this heading

defaults.bad_request(request, exception, template_name='400.html')Link to this definition

Nuair a ardaítear a:exc: ~Django.Core.Exceptions.SuspiciousOperation i Django, féadfaidh comhpháirt de Django é a láimhseáil (mar shampla sonraí na seisiúin a athshocrú). Mura ndéantar é a láimhseáil go sonrach, measfaidh Django an t-iarratas reatha mar 'droch-iarrat' in ionad earráid freastalaí.

django.views.defaults.bad_request, an-chosúil leis an radharc server_error, ach filleann sé leis an gcód stádais 400 a léiríonn gurb é an riocht earráide mar thoradh ar oibríocht cliant. De réir réamhshocraithe, ní chuirtear aon rud a bhaineann leis an eisceacht a spreag an dearcadh chuig comhthéacs an teimpléid, toisc go bhféadfadh faisnéis íogair cosúil le cosáin chórais chomhaid a bheith sa teachtai

Ní úsáidtear tuairimí bad_request ach amháin nuair:setting: DEBUG False.