Izboljšajte videz svoje aplikacije Django tako, da razvijete prilagojeno stran z napako 404, namesto da se zanašate na navadno privzeto.

Strani z napakami so običajne pri spletnih aplikacijah. Sodelavci Djanga so zagotovili privzete strani za nekatere od teh napak, kot je napaka 404 (Ni najdeno). Toda kot razvijalec je najbolje imeti stran z napako, ki sledi načelom oblikovanja preostale spletne aplikacije.

Ustvarjanje strani 404 po meri v Djangu

Napaka 404 je del večih Statusne kode HTTP ki ga brskalnik uporablja za označevanje odziva strežnika na zahteve brskalnika uporabnika. Django ponuja privzete predloge za nekatere od teh statusnih kod in privzeta stran z napako 404 v Djangu izgleda takole:

Zgornja slika ni videti lepa in večina podjetij je ne bo zlahka sprejela na svojem spletnem mestu. Če želite spremeniti to stran v prilagojeno stran 404 po vaši izbiri, sledite spodnjim korakom.

1. korak: ustvarite pogled za obravnavo napake 404

Odpri svojo views.py in ustvarite pogled za stran z napako 404. Ta pogled bi moral vrniti predlogo, ki vsebuje zasnovo vaše strani z napako 404 po meri. Tukaj je preprost pogled Django, ki ga lahko uporabite v svojem projektu:

od django.shortcuts uvoz upodabljati

# pogled po meri 404
defcustom_404(zahteva, izjema):
vrnitev render (zahteva, '404.html', status=404)

Zgornji delček kode je a Funkcija Python (po možnosti imenovan pogled Django v tem primeru), ki sprejme dva argumenta funkcije; prošnja, in izjema. Drugi argument -izjema— omogoča dostop do objekta izjeme, ki je sprožil napako 404.

Moral bi zamenjati ‘404.html’ v zgornjem pogledu s pravilno potjo do strani s predlogo HTML z napako 404.

2. korak: Ustvarite predlogo za svojo napako 404

Ustvarite novo datoteko HTML, ki bo vsebovala vaš dizajn po meri za stran z napako 404. Zasnova mora biti skladna s preostalim delom vaše aplikacije. Tukaj je preprosta predloga HTML, ki jo lahko uporabite v svojem projektu. To predlogo morate spremeniti, kot se vam zdi primerno:

 Predloga 404.html 
html>
<htmljezik="en">
<glavo>
<metanabor znakov="UTF-8">
<metaime="viewport"vsebino="width=device-width, initial-scale=1.0">
<naslov>404 Stran ni najdenanaslov>
<povezava
uvozi Bootstrap
href=" https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
rel="stylesheet"
celovitost="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ"
crossorigin="anonimno">
CSS po meri
<stil>
telo {
zaslon: flex;
flex-direction: stolpec;
justify-content: center;
align-items: center;
višina: 100vh;
družina pisav: Arial, sans-serif;
}

.container {
poravnava besedila: sredina;
največja širina: 600 slikovnih pik;
}

.emoji {
velikost pisave: 8rem;
rob-spodaj: 20px;
}

h1 {
velikost pisave: 3rem;
rob-spodaj: 20px;
}

p {
velikost pisave: 1,5 rem;
rob-spodaj: 20px;
}

.btn {
velikost pisave: 1,25 rem;
oblazinjenje: 10px 20px;
}
stil>
glavo>
<telo>
<divrazred="posoda">
<divrazred="emoji">😕div>
<h1>Ups! Stran ni najdenah1>
<str>Strani, ki ste jo iskali, nismo mogli najti.str>
<arazred="btn btn-primarni"href="/">Vrni se na Domova>
div>
telo>
html>

3. korak: spremenite datoteko URL-jev svojega projekta

Na ravni vašega projekta (kjer vaš nastavitve.py datoteka je), odprite svojo urls.py in usmerite upravljalnik napake 404 na pogled, ki ste ga ustvarili za obravnavo napake 404. Pokliče se program za obravnavo napake 404 upravljavec404. Do točke upravljavec404 po vašem mnenju bi morali slediti tej obliki:

upravljavec404 = 'app_name.views.custom_404_view_name'

Če se vaša aplikacija imenuje recept, pogled pa se imenuje custom_404, potem morate zgornjo obliko spremeniti takole:

upravljavec404 = 'recipe.views.custom_404'

Prepričajte se, da to storite na ravni projekta in ne na ravni aplikacije. obstajajo razlike med projektom in aplikacijo v Djangu.

4. korak: preizkusite svojo novo stran z napako 404

Če želite preizkusiti svojo novo stran z napako, zaženite razvojni strežnik in se pomaknite do neobstoječe strani v aplikaciji. Strežnik lahko zaženete tako, da zaženete ta ukaz v orodju ukazne vrstice (CLI):

python manage.py runserver

Če želite, da zgornji ukaz deluje, morate biti v korenskem imeniku projekta, tj. v mapi, kjer je upravljati.py datoteka živi.

Ko se strežnik zažene, preizkusite svojo stran po meri 404 tako, da se pomaknete na neobstoječo stran, kot je npr. http://127.0.0.1:8000/hello. Če ste vse naredili pravilno, bi morali videti stran z napako 404 po meri.

Če se vaša stran z napako 404 po meri ne prikaže, preverite poglede in se prepričajte, da ste napisali pravilno pot do predloge HTML v render() funkcijo, saj je to pogosta težava.

Strani z napakami po meri zagotavljajo boljšo uporabniško izkušnjo

Če imate v svoji aplikaciji stran z napakami po meri, boste izboljšali izkušnjo svojih uporabnikov, ko naletijo na napake. Namesto splošnega sporočila o napaki lahko stran z napako po meri zagotovi natančnejše informacije o napaki in predlaga možne rešitve.

To lahko uporabnikom pomaga razumeti, kaj je šlo narobe in kako to popraviti, kar zmanjša frustracije in poveča njihovo zaupanje v vašo aplikacijo. Stran boste lahko naredili tudi vključujočo z dodajanjem funkcij dostopnosti.