Djangoチュートリアル(12) 静的ファイル
自動テストについて少し読み物
ResultsView にも同じように get_queryset メソッドを追加して、新しいテストクラスも作らなければならないようです。しかしこれは、今作ったばかりのものとそっくりになるでしょう。実際、テストは重複だらけになるはずです。
...
ある時点で、書いたテストが限界に達しているように見え、テストが膨らみすぎてコードが苦しくなってしまうのではないかという疑問が浮かんでくるでしょう。こうなって場合にはどうすれば良いのでしょうか?
どうすればよいのでしょうか?
構いません。 テストコードが大きくなるのに任せましょう。たいていの場合、あなたはテストを一回書いたら、そのことを忘れて大丈夫です。プログラムを開発し続ける限りずっと、そのテストは便利に機能し続けます。
なるほど
きちんと考えてテストを整理していれば、テストが手に負えなくなることはありません。
きちんと考えることは必要なのね
Django には、Selenium のようなツールとの連携を容易にしてくれる LiveServerTestCase が用意されています。
へー
何をしてくれるんだろう
Testing tools | Django documentation | Django
LiveServerTestCase does basically the same as TransactionTestCase with one extra feature: it launches a live Django server in the background on setup, and shuts it down on teardown.
テスト時にサーバを起動したり止めたりしてくれるんだって
なるほど
自分で起動もできるとは思うけどやってくれたほうが楽だしね
TransactionTestCase
はデータベースの面倒を見てくれるものみたい
次は静的ファイル
django.contrib.staticfiles はまさにそのためにあります。これは静的なファイルを各アプリケーションから (さらに指定した別の場所からも) 一つの場所に集め、運用環境で公開しやすくするものです。
Django の STATICFILES_FINDERS は、さまざまなソースから静的ファイルを検索する方法を知っているファインダのリストです。
こういうのときどき出てくるけど何なんだ環境変数?どっかで定義してる変数?
STATICFILES_FINDERS
デフォルト値:[ 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', ]
変数みたい
AppDirectoriesFinder
ってやつがpollsの下から探してくれるやつ
変更したいときは多分settings.pyに書くんだろう
そういえばこのページ、jaだけどほぼ英語だな
まあいいか
ではpolls/staticディレクトリを作成
ってもうあるな
最初からあった気もする
その下にやっぱりpollsディレクトリを作ってstyle.cssを作る
テンプレートと同様に、polls という別のサブディレクトリを作らずに、直接 polls/static の中に静的ファイルを置いてもいいのではないか、と思うかもしれませんね。しかし、それは実際には悪い考えです。
りょ
polls/static/polls/style.css
li a {
color: green;
}
index.htmlに追加
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}>
{% static 'polls/style.css' %}
と書くと環境に合わせたURLに変更してくれる
ここでは/static/polls/style.css
{% load static %}
は何のために書いてあるんだろう
static
っていう部品使うよってことかな
試してみる
・・・
よく見ると箇条書きの丸が緑か
cssにもアクセスが来てる
[13/Jul/2019 07:36:54] "GET /polls/ HTTP/1.1" 200 179
[13/Jul/2019 07:36:54] "GET /static/polls/style.css HTTP/1.1" 200 24
ページのソースも確認
<link rel="stylesheet" type="text/css" href="/static/polls/style.css">
大丈夫
画像はpolls/static/polls/でさらにimagesディレクトリを作って入れる
cssでURLを書くときは相対で書くように