Tout d'abord, j'étais vaguement conscient des numéros d'erreur tels que 404 et 500, alors j'ai facilement cherché sur Google. http://human-dust.kdn.gr.jp/doujin/net/errormsg.html http://www.seohacks.net/blog/crawl_index/http_statuscode/
Il est toujours nommé, mais il utilise un module appelé Http404. La description dans le didacticiel est la suivante.
from django.http import Http404
# ...
def detail(request, poll_id):
try: #Avec le code ici ...
pobject = Poll.objects.get(pk=poll_id) #Qu'est-ce que pk?
except Poll.DoesNotExist: #Quand il s'agit de cela ····
raise Http404 #Traiter comme une erreur 404
return render_to_response('polls/detail.html', {'poll': pobject}) #Atteignez ici s'il n'y a pas de problème
De plus, il semble y avoir une manière d'écrire plus courte ici aussi. Dans ce cas,
from django.shortcuts import render_to_response, get_object_or_404
# ...
def detail(request, poll_id):
pobject = get_object_or_404(Poll, pk=poll_id)
return render_to_response('polls/detail.html', {'poll': pobject})
Se sentir comme ça. Est-il acceptable de ne pas utiliser l'instruction try ici? En fait, celui mentionné ci-dessus utilise également les raccourcis qui sont apparus la dernière fois. Personnellement, je ne veux pas utiliser d'abréviations tant que je n'ai pas compris comment cela fonctionne, j'ai donc osé le corriger comme suit.
from django.http import Http404
#…
def detail(request,poll_id):
try:
pobject = Poll.objects.get(pk=poll_id)
except Poll.DoesNotExist:
raise Http404
temp = loader.get_template('polls/detail.html')
contxt = Context({
'poll':pobject
})
return HttpResponse(temp.render(contxt))
C'est un peu long, mais je sens que je peux attraper le flux.
Eh bien, c'est bien, mais il semble que DJango a préparé l'écran d'erreur essentiel sans avoir à créer un modèle par vous-même. Je ne ressens pas le besoin de créer le mien jusqu'à présent, alors je vais le parcourir. Si vous souhaitez le créer, vous pouvez le placer dans le répertoire des modèles avec le nom de fichier 404.html. __ Cependant, je n'ai pas compris comment le définir même après avoir lu l'explication (définir une variable appelée handler404 dans URLConf?). __
Définissez DEBUG dans setting.py sur False (si True, le suivi est prioritaire)
De même, définissez ALLOWED_HOSTS (il semble que vous puissiez saisir votre propre domaine comme ".example.com", mais si rien ne vous dérange, "*" est OK)
De plus, il semble qu'il n'y ait pas beaucoup de différence dans ce qu'il faut faire même dans le cas de 500 (erreur de serveur).
Recommended Posts