Django-ベーシックスリー(テンプレート)

1つは、テンプレート構成です

①、ページファイルを保存できるテンプレートフォルダをプロジェクトに作成します
②、設定設定ファイルでTEMPLATESを検索します。DIRS:os.path.join(BASE_DIR、 'templates')は、ルートディレクトリのテンプレートでhtmlファイルを検索することを意味します。
③、APP_DIRS:Trueは、必要なhtmlがメインのtempatesフォルダーに見つからない場合は、アプリ内のフォルダーに移動して見つけ
ますが、htmlファイルが見つからない場合は、アプリをINSTALLED_APPS④に登録する必要があることを意味します。 TemplateDoesNotExistは異常にスローされます

第二に、データのレンダリング

バックグラウンドでコンテンツをWebページにレンダリングします

ここに画像の説明を挿入

①、リストタプルは下付き文字を介して直接読み取ることができます
②、辞書はkを介して対応する値を読み取ることができます

3つのラベル記号(if、for、urlリンク)

1. if&forタグ
ここに画像の説明を挿入

注:
①、forループは逆を使用できます。{本の本が逆になっている場合の%%}逆トラバーサル
②、いくつかの方法が

項目 方法 説明
1 forloop.counter 現在のループのインデックス。開始値として1を取ります。
2 forloop.counter0 現在のループのインデックス。0から始めます。
3 forloop.revcounter 現在のサイクルの逆インデックス値。たとえば、リストに5つの要素がある場合、属性は最初のトラバーサルでは5、2回目では4というようになります。そして最後の要素のインデックスとして1を使用します。
4 forloop.revcounter0 forloop.revcounterに似ています。違いは、最後の要素のインデックスが0から始まることです。
5 forloop.first それが最初のトラバーサルであるかどうか。
6 forloop.last それが最後のトラバーサルであるかどうか。

③、{本の本の%%}本の内容{%空%}本が空の場合は、ここに表示します{%endfor%}

2. URLの反転
。htmlのurlを介してWebページにジャンプする途中で、template_appはurlのapp_nameではなく、indexはパスの名前であり、中央は

ここに画像の説明を挿入

注:ここのURLは、文字列のスプライシングまたはプレースホルダーパラメーターの転送
使用できます①、文字列のスプライシング:<-a href = "{%url'book:detail 'book_id = 1%}?page = 1">本の詳細ページ</- a>
②、プレースホルダー参照:<-a href = "{%url'book:detail 'book_id = 1 page = 2%}">本の詳細ページ</-a>

3.テンプレートフィルター
テキスト/表現|

項目 フィルタ名 使用法 説明
1 追加 { {値/追加:「2」}} 渡されたパラメーターを元の値に追加します。このフィルターは、値とパラメーターを整数に変換してから追加しようとします。変換プロセスが失敗した場合、値とパラメーターがスプライスされます。文字列の場合は文字列にスプライスされ、リストの場合はリストにスプライスされます。
2 切る { {値/カット: ""}} 値から指定されたすべての文字列を削除します。Pythonのreplace(args、 "")に似ています。
3 日付 { {誕生日/日付:“ Y / m / d”}} 指定された形式に従って、日付を文字列にフォーマットします。
4 デフォルト { {値/デフォルト:「何もない」}} 値がFalseと評価された場合。たとえば、[]、 ""、None、{}、およびif判定でFalseであるその他の値は、デフォルトフィルターによって提供されるデフォルト値を使用します。
5 最初 { {値/最初の}} リスト/タプル/文字列の最初の要素を返します。
6 最終 { {値/最後の}} リスト/タプル/文字列の最後の要素を返します。
7 floatformat
  • { {34.353333 / floatformat:3}}
  • 34.353
丸め
8 参加する { {値/結合: "/"}} Pythonでの結合と同様に、リスト/タプル/文字列を指定された文字で連結します。
9 長さ { {値/長さ}} リスト/タプル/文字列/辞書の長さを取得します。
10 { {値/低い}} 値のすべての文字を小文字に変換します。
11 アッパー { {値/上限}} 指定された文字列が大文字に変換されることを除いて、lowerと同様です。
12 ランダム { {値/ランダム}} 指定されたリスト/文字列/タプルから値をランダムに選択します。
13 安全 { {値/安全}} 文字列をマークしても安全です。これにより、この文字列の自動エスケープがオフになります。
14 スライス { {some_list /ママ:“ 2:”}} Pythonのスライス操作に似ています。
15 文字列タグ { {値/ストリップタグ}} 文字列内のすべてのhtmlタグを削除します。
16 truncatechars { {value / truncatechars:5}} 指定された文字列の長さがフィルターで指定された長さを超える場合。次に、それがカットされ、3つのドットが省略記号としてスプライスされます。
4、包含および拡張

1.カスタムコンテンツを含めてロードし、タグフィルタリングアクションを実行することもできます
ここに画像の説明を挿入

2.テンプレートの継承を拡張する
一般的に、base.htmlをお勧めします。ここに同じ部分を置き、{%block name%} {%endblock%}をサクセサのインターフェイスとして使用します。
次に、サブテンプレートはブロックで定義された名前を使用して、さまざまな部分をコンパイルします。

5、静的ファイル(css、js)をロードします

①。まず、django.contrib.staticfilesがsettings.INSTALLED_APPSに追加されていることを確認します。
②。必ずsettings.pyにSTATIC_URLを設定してください。
③。インストールしたアプリの下にstaticというフォルダを作成し、静的フォルダの下に現在のアプリの名前でフォルダを作成して、このフォルダに静的ファイルを置きます。
④。どのアプリにもリンクされていない静的ファイルがある場合。次に、settings.pyにSTATICFILES_DIRSを追加すると、DTLは将来このリストのパスで静的ファイルを検索します。

STATICFILES_DIRS = [
	os.path.join(BASE_DIR,"static"),
]

⑤。loadタグを使用して、テンプレートに静的タグをロードします。たとえば、プロジェクトの静的フォルダーにstyle.cssファイルをロードします。

 {
    
    % load static %}
  <link rel="stylesheet" href="{% static 'style.css' %}">

⑥。テンプレートに静的ファイルをロードするたびにロードを使用して静的タグをロードしたくない場合は、設定のテンプレート/オプションに「builtins」:['django.templatetags.static']を追加できます。 .py、後でテンプレートに含まれるようにする手動でロードする代わりに、静的タグを直接使用できます。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_37697566/article/details/107082702