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 |
|
丸め |
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、後でテンプレートに含まれるようにする手動でロードする代わりに、静的タグを直接使用できます。