0
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 for BEGINNERSをやってみる その2

Last updated at Posted at 2018-12-20

はじめに

DJANGO for BEGINNERSをやってみる その1の続き

Chapter3: Pages App

その1に比べてちょっと高度なことをする。

Templateの継承

まずは親テンプレートとなるbase.htmlを作る。

base.html
<header>
    <a href="{% url 'home' %}"> Home </a>| <a href="{% url 'about' %}"> About </a>
</header>
{% block content %}
{% endblock content%}

ヘッダに先ほどまでに作ったhome.htmlとabout.htmlのリンクを貼る。
djangoのテンプレートタグは{% %}で囲まれている。{% url 'home'%}はurls.pyに記述したhome.htmlのURLになる。
参考:Django: 組み込みタグとフィルタの一覧

home.htmlとabout.htmlにbase.htmlを継承させる。

about.html
{% extends 'base.html' %} <!-- base.htmlを継承する -->

{% block content %} <!-- block tagで親templateのblock tagの中身をオーバーライドできる -->
<h1> About Page </h1>
{% endblock content %}
home.html
{% extends 'base.html' %}

{% block content %}
<h1> Pages App !!  </h1>
{% endblock content %}

ここまできたら以下のようなページになるはず!

fb3e1f71d7b54a62ccd5ffaafe645ffe.gif

Tests

In the words of Jacob Kaplan-Moss, one of Django's original creators, "Code without tests is broken as designed."
(William S. Vincent, DJANGO for BEGINNERS, Chapter3 Tests)

"テストなしのコードは設計通りに機能しない" ということでその1で作ったページのテストを作成する。
プロジェクト作成時にテスト用のファイルは自動で作成されているので、そこへテスト関数を追記する。

pages/tests.py
from django.test import TestCase, SimpleTestCase

# Create your tests here.
class SimpleTest(SimpleTestCase):
    
    # HttpRequestに対してリクエスト成功(=200)の応答が返ってきていることを確認するテスト
    def test_home_page_status_code(self):
        response = self.client.get('/')
        self.assertEqual(response.status_code, 200) 
    
    def test_about_page_status_code(self):
        response = self.client.get('/about/')
        self.assertEqual(response.status_code, 200)

テストがかけたら、実行する。

test_command
% python manage.py test
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
..
----------------------------------------------------------------------
Ran 2 tests in 0.059s

OK
Destroying test database for alias 'default'...

コマンド一発で自動実行。便利!

Deploy

Heroku使ってデプロイする手順もあるけど、気が向いたらやる。

Chapter3まとめ

  • Templateの継承
  • クラスベース汎用ビューの利用
  • 基本的なテストの追加と実行

続き

Chapter4 Message Borad App

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