1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

技術書一冊やり込もうAdvent Calendar 2024

Day 14

Django プロフェッショナル webプログラミング #3 -templateはじめの一歩-

Last updated at Posted at 2024-12-13

※以下の企画です

前回に続いてpart2の続きをやっていきます。
今回はテンプレートの作成がメインになりそうです。
HTML/CSSの初歩的な内容が多そうなので、要所だけまとめて記載していきます〜

Part2③

テンプレートを作ってみる

とりあえず本書の内容に従ってテンプレートを作成していく。
以下は写経した内容。

article.html
<h1>ニュースサイト</h1>
<h2>{{title}}</h2>
<p>{{content}}</p>
views.py
from django.http import HttpResponse
from django.template import loader

def article(request):
    template = loader.get_template('article.html')
    context = {
        'title':'記事のタイトル',
        'content':'記事の本文'
    }

    return HttpResponse(template.render(context,request))
urls.py
from django.urls import path
from . import views

app = 'first_app'
urlpatterns = [
    path('',views.index, name='index'),
    path('page/<int:page_id>/', views.page, name='page'),
    path('article/', views.article, name='article'),
]

上記のようにarticle.htmlを作成。
この後はこの子を改造しながら学んでいくスタイルっぽい。

さらっと流されている大事な部分としては、viewscontextとして返している値をtemplate側で表示するには、htmlファイル上で{{ }}を記載すればいい。

インクルード

テンプレートを増やすたびにfooterやらheaderやらの共通する内容を何度も記述していくのは非効率的だ。
なので、djangoだとincludeという仕組み?を用いて共通ファイルを用意すればそれを呼び出すだけで良いようにしてくれている。
記述方法は至ってシンプルで、読み込みたいファイルを{% include 'ファイル名' %}とするだけ。

article.html
{% include 'header.html' %}

<article>
<h1>ニュースサイト</h1>
<h2>{{title}}</h2>
<p>{{content}}</p>
</article>

{% include 'footer.html' %}
header.html
<header>
    <h1>ニュースサイト</h1>
</header>
footer.html
<footer>
    <small>(c)ニュースサイト</small>
</footer>

開発サーバー(/article)にアクセスしてみると以下の画像のようにちゃんとheaderfooterも反映されていることがわかる。

スクリーンショット 2024-12-01 18.50.35.png

まとめ

今回は割とあっさりめの内容だったが、すべてのtemplateの原理原則的な内容だった。
変数のやりとりは肝になっている機能だと思うので、落ち着いてちゃんとコーディングできるようにしていく・・・

次回もがんばろ〜〜

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?