CSS や画像などの Static コンテンツの設置方法を確認しよう.具体的には,スタイルシートを設置して,上のフラッシュメッセージのデザインを整える.
まず,comments/templates/base.html のフラッシュメッセージにスタイルを適用するために class と onclick を追加する(16行目).さらに,HTML ファイルの先頭で Static コンテンツを有効にするための命令(1行目)とスタイルシートを読み込むためのコード(5行目)追加する.
comments/templates/base.html (抜粋)
{% load static %}<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<title>{% block title %}{% endblock %}</title>
</head>
<body>
{% if messages %}
<div class="container">
<div>
{% for message in messages %}
<p class="flash_message" onclick="this.classList.add('hidden')"> {{ message }}</p>
{% endfor %}
</div>
</div>
{% endif %}
{% block content %}
{% endblock content %}
comments フォルダに static/css フォルダを作成し,その中に style.css ファイルを設置する.
comments/static/css/style.css
.flash_message {
padding-top: 10px;
padding-bottom: 10px;
text-align: center;
color: #ffc;
background: #417690;
}
.hidden {
display: none;
}
もしも web サーバを起動し続けているのであれば,comments/templates/base.html の編集後に再起動しておくことを忘れないように.起動したままでは Static ファイルが有効にならない可能性が高い.
(base) C:\Users\lecture\Documents\django\django_comment>python manage.py runserver ⏎ Watching for file changes with StatReloader Performing system checks...
もう一度,新規に投稿すると,フラッシュメッセージのデザインが変更された.また,メッセージをクリックすると,<p> タグに hidden 属性が追加されるので表示されなくなることも確認しよう.