3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Django#2(テンプレート)

Posted at

Djangoでテンプレートを使う

とりあえずの設定。以下のファイルを編集する。

  • アプリ/views.py
    • views.py内で定義した関数(ビュー関数)からテンプレートファイルを呼び出し、HTTPレスポンスを返す
  • config/settings.py
    • テンプレートファイルの置き場所を設定する
  • template/テンプレート.html
    • 実際のテンプレートファイル(ファイル名、サブディレクトリは任意)

ビュー関数を書く

とりあえずhelloに対応する内容。

python/app_name/views.py
from django.shortcuts import render  # render(request, 'hello.html', context)
from django.http import HttpResponse  # HttpResponse('Hello, World !!')
from django.shortcuts import render
from django.views import View

class HelloView(View):
    def get(self, request, *args, **kwargs):
        context = {
            'message': "Hello World! from View!!",
        }
        return render(request, 'hello.html', context)

hello = HelloView.as_view()

render関数がテンプレートを呼び出してHTMLを生成する関数。

  • 第1引数のrequestはとりあえず書いておく。
  • 第2引数'hello.html'でテンプレートファイルの指定。templates/フォルダ以下の相対パス指定。
  • 第3引数contextはテンプレートに渡す変数の辞書。
    • テンプレートファイルの中ではキーを変数名として値を参照できる。
    • テンプレートファイル名では柔軟な変数の追加、変更はできないので、基本contextに全部詰め込む。

最後のhello = HelloView.as_view()はHelloViewクラスをhelloビュー関数として紐づける操作。
この関数名はurls.pyで設定する関数名と対応させる。

テンプレートの置き場所を設定する

テンプレートファイルのベースになる場所を設定する。
下記はプロジェクトフォルダ/templates/に設定。

config/settings.py
57c58
<         'DIRS': [],
---
>         'DIRS': [os.path.join(BASE_DIR, 'templates')],

テンプレートファイルを用意する

上記のconfig/settings.pyに記載したディレクトリを作って
その中にテンプレートファイルを作成する。

$ mkdir templates
$ vi templates/hello.html

テンプレートファイルの内容。今回はmessageという変数を表示するだけ。
詳細な書き方は下記。
The Django Template Language | Django ドキュメント | Django

templates/hello.html
{{ message }}

動作確認

WEBブラウザでhttp://IPアドレス:8000/app_name/で
Hello World! from View!!と表示されればOK

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?