Djangoでは好きなようにビューのテンプレートを作成できる。
作り方の簡単なメモ。
コンテンツ
テンプレートの作り方
1.urls.pyにパスを追加
urlpatternsに下記部分を追記します。
1 2 3 4 5 | from .views import MyClass #追記 urlpatterns = [ path('XXXurl/', MyClass.as_view(), #追記 ] |
2.ビュー用のファイルを作成
下記の通り、ビューファイルを作ってTemplateViewをインポートし、テンプレートとしてhello.htmlを指定します(後ほど作成)。
1 2 3 4 | from django.views.generic import TemplateView #追記 class MyClass(TemplateView): #追記 template_name = 'hello.html' #追記 |
3.テンプレートファイルを作成
まずはプロジェクト直下にtemplatesディレクトリを作成し、その中にhello.htmlという名前のファイルを作ります。
1 2 3 | cd /your/project/path mkdir templates touch templates/hello.html |
1 | Hello World! |
4.setting.pyを修正
デフォルトだとテンプレートファイルのディレクトリが登録されていないので、下記の通りファイルを修正します。
1 2 | TEMPLATES = [ 'DIRS' = [BASE_DIR / 'templates'], #修正 |
確認
そして下記を実行すると、ブラウザにhello.htmlの内容が表示されるはずです。
1 | python3 manage.py runserver |
TemplateDoesNotExist エラーの対処方法
テンプレートをいじっていると、おそらく遭遇するであろうエラー。
「テンプレートが存在しない」と言われているので、下記の点をチェックしましょう。
- settings.pyのTEMPLATESのDIRSの内容は合っているか
- ビュー用のファイル名とviews.pyで登録したテンプレート名は一致しているか
- views.pyで定義したクラス名とurls.pyでインポートしたクラス名は一致しているか
以上です。