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:
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:
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
Similarly, Django has a view to handle 400 Bad Request errors.
This view either produces a "Bad Request" message or loads and renders the
template 400.html if you created it in your root template directory.
It returns with status code 400 indicating that the error condition was the
result of a client operation. By default, nothing related to the exception that
triggered the view is passed to the template context, as the exception message
might contain sensitive information like filesystem paths.
django.views.defaults.bad_request is triggered by a
BadRequest exception. Also, when a
SuspiciousOperation is raised in Django,
it may be handled by a component of Django (for example resetting the session
data). If not specifically handled, Django will consider the current request a
'bad request' instead of a server error, and handle it with bad_request.
Ní úsáidtear tuairimí bad_request ach amháin nuair:setting: DEBUG False.