418 I'm a teapot
418 I'm a teapotとは1998年のエイプリルフールに発表されたジョークステータスコードです。これをDjangoで実装する方法を見つけたので書いていきます。
前提
※ファイル、フォルダ群の階層構造は省略
とりあえずこの記事では前提としてurls.pyは以下のものとします
urls.py
#import文などは省略
urlpatterns = [
path("teapot", views.teapot, name="teapot"),
]
単純に418を返す場合
views.py
from django.http import HttpResponse
def teapot(request):
return HttpResponse(status=418)
この状態でpython manage.py runserverを行い、http://127.0.0.1:8000/teapotにアクセスすると
[05/Sep/2021 21:15:43] "GET /teapot HTTP/1.1" 418 0
とコンソールに表示され、418番が出ていることが分かります。
418専用のHTMLを出したい場合
まずtemplatesフォルダ直下に418.html(別にこの名前じゃなくてもOK)を作成しておき、
418.html
{% load static %}
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>I'm a teapot!!</h1>
<img src = "{% static 'picture/teatime_teapot.png' %}">
</body>
</html>
と書き、そしてviews.pyに
views.py
from django.shortcuts import render
def teapot(request):
return render(request, "418.html", status=418)
と書いておきます。
この状態でpython manage.py runserverをし、http://127.0.0.1:8000/teapotにアクセスすると、
と表示されるはずです。