{"id":202,"date":"2009-10-17T23:24:13","date_gmt":"2009-10-17T21:24:13","guid":{"rendered":"http:\/\/j-mad.com\/blog\/?p=202"},"modified":"2009-10-18T10:36:12","modified_gmt":"2009-10-18T08:36:12","slug":"erreur-404-et-500-en-django","status":"publish","type":"post","link":"https:\/\/j-mad.com\/blog\/2009\/10\/17\/erreur-404-et-500-en-django\/","title":{"rendered":"Les erreurs 404 et 500 en django."},"content":{"rendered":"<p>Les erreurs 404 et les erreur 500 sont les deux erreurs les plus courantes sur le web. Quand on est pas en mode debug (vu que l\u00e0 c&#8217;est le mode debug qui g\u00e9re le tout, avec une jolie traceback pour l&#8217;erreur 500), il faut s&#8217;occuper de l&#8217;affichage des dites pages.<\/p>\n<p>Et par d\u00e9faut, il n&#8217;y a pas de templates pour les deux erreurs. M\u00eame pas un petit template tout vide. Non rien. Ce qui fait que lorsqu&#8217;on g\u00e9n\u00e8re une 404, comme django ne trouve pas le template, boum on se prend une 500 dans les dents, qui elle m\u00eame r\u00e2le parce qu&#8217;elle ne trouve pas son template.<\/p>\n<h1>Template 404 et 500<\/h1>\n<p>Les templates doivent se nommer, fort intelligemment 404.html et 500.html. Ces deux fichiers de templates doivent se trouver, c&#8217;est important, \u00e0 la racine de votre r\u00e9pertoire contenant les templates.<\/p>\n<h2>Sp\u00e9cificit\u00e9s de la 404<\/h2>\n<p>il sera pass\u00e9 une variable \u00e0 votre template 404 , request_path , qui contiendra l&#8217;URL qui a g\u00e9n\u00e9r\u00e9 la 404. Vos contextes processors seront \u00e9galement appel\u00e9s et donc vous pourrez les utiliser dans votre template.<\/p>\n<h2>Sp\u00e9cificit\u00e9s de la 500<\/h2>\n<p>Il n&#8217;est rien pass\u00e9 au template 500, histoire de ne pas, potentiellement, aggraver les probl\u00e8mes, pas une seule variable.<\/p>\n<h1>Les handlers<\/h1>\n<p>Il est possible que red\u00e9finir des templates ne vous suffisent pas. C&#8217;est peut-\u00eatre fort improbable, mais possible. Ce cas l\u00e0 a \u00e9t\u00e9 pr\u00e9vu. Il vous suffit de d\u00e9finir vos views sp\u00e9cifique et de enregistrer dans les deux handlers qui vont bien \u00e0 savoir handler404 et handler500.<\/p>\n<p>Vous voil\u00e0 maintenant par\u00e9. Amusez vous bien avec vos templates persos de page d&#8217;erreur.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les erreurs 404 et les erreur 500 sont les deux erreurs les plus courantes sur le web. Quand on est pas en mode debug (vu que l\u00e0 c&#8217;est le mode debug qui g\u00e9re le tout, avec une jolie traceback pour l&#8217;erreur 500), il faut s&#8217;occuper de l&#8217;affichage des dites pages. Et par d\u00e9faut, il n&#8217;y &hellip; <a href=\"https:\/\/j-mad.com\/blog\/2009\/10\/17\/erreur-404-et-500-en-django\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Les erreurs 404 et 500 en django.<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[6],"tags":[99,98],"class_list":["post-202","post","type-post","status-publish","format-standard","hentry","category-django","tag-django","tag-python"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p12cdp-3g","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/comments?post=202"}],"version-history":[{"count":2,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/202\/revisions"}],"predecessor-version":[{"id":204,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/202\/revisions\/204"}],"wp:attachment":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/media?parent=202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/categories?post=202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/tags?post=202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}