Dino Geek, cerca di aiutarti

Come gestire gli errori 404 in Django?


Gli errori 404 in Django possono essere gestiti in diversi modi, permettendo di personalizzare il messaggio d’errore visualizzato agli utenti quando visitano una pagina non esistente.

Prima di tutto, Django include una funzione incorporata `get_object_or_404()`. Questa funzione può essere utilizzata per sostituire l’uso comune di `get()`. Ad esempio, se si sta cercando di recuperare un oggetto da un modello, si potrebbe normalmente scrivere:

```
try: oggetto = Modello.objects.get(pk=1)
except Modello.DoesNotExist: raise Http404(“L’oggetto non esiste”)
```

Usando `get_object_or_404()`, il codice diventa più conciso:

```
from django.shortcuts import get_object_or_404

oggetto = get_object_or_404(Modello, pk=1)
```

La funzione `get_object_or_404()` lancia un’eccezione `Http404` se l’oggetto non esiste. Questa eccezione può essere intercettata e trattata nel proprio codice, oppure si può lasciare che Django la gestisca automaticamente e mostri una pagina d’errore 404 di default.

Tuttavia, potrebbe essere preferibile avere una propria pagina d’errore personalizzata. Per farlo, bisogna creare un template chiamato `404.html` nella cartella templates del proprio progetto. Questa pagina verrà visualizzata ogni volta che Django incontra un errore 404. È possibile personalizzare questo template in qualsiasi modo si desideri, ad esempio includendo un link alla homepage o ad altri punti importanti del tuo sito web.

È importante notare che per far funzionare questo tipo di gestione degli errori, si deve avere `DEBUG = False` nel proprio file di configurazione `settings.py` di Django. Durante lo sviluppo, usufruire del DEBUG mode consente di vedere gli errori completi delle pagine quando qualcosa va storto. Tuttavia, in produzione, non si vuole che questi dettagli siano visibili agli utenti, e quindi si deve impostare `DEBUG = False`.

Infine, Django fornisce una vista predefinita per la gestione degli errori 404, `django.views.defaults.page_not_found`. Se non si fornisce un proprio template 404, Django utilizza questa vista predefinita.

Fonti:
- Django Project Documentation: https://docs.djangoproject.com/en/3.2/topics/http/views/
- Django Project Documentation: https://docs.djangoproject.com/en/3.2/topics/http/views/#the-http404-exception
- Real Python: https://realpython.com/django-views/#handling-http-404-errors
- MDN Web Docs: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/sessions


Genera semplicemente articoli per ottimizzare il tuo SEO
Genera semplicemente articoli per ottimizzare il tuo SEO





DinoGeek offre articoli semplici su tecnologie complesse

Vuoi essere citato in questo articolo? È molto semplice, contattaci a dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nome dominio | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Avviso Legale / Condizioni Generali di Utilizzo