3

- Django 1.2 - Apache - Mod WSGI を使用して Web ポータルを開発しています

Apache によって提供されている HTML ファイルがいくつかあります。

ヘッダー/フッターと動的メニューをそのまま維持するために、これらの静的 HTML ページを基本テンプレートの下にレンダリングしたいと考えています。

iframeを使用すると考えることができる1つの方法。もう1つの方法は、レンダリング中にHTMLファイルを読み取って文字列を返すことですが、その場合、Apacheの利点を失っているため、より良い方法があるかどうかを知りたいのですが、djangoのものによって提供される既存のソリューションはありますか? ?

4

3 に答える 3

7

これがまさにあなたが求めているものかどうかはわかりませんが、必要に応じて、タグssiとタグを使用してテンプレートに html ファイル (または別のテンプレート) を挿入できます。include

{% ssi '/path/to/file.html' %}
{% include 'relative/path/to/template.html' %}
于 2013-01-03T13:42:07.583 に答える
2

はい、インクルードタグです

テンプレートをロードし、現在のコンテキストでレンダリングします。これは、テンプレート内に他のテンプレートを「含める」方法です。

それは次のように簡単です

{% include "templates/static_template_1.html" %}

または、ビュー側で変数を作成する場合:

{% include template_name_variable %}

コンテキストをベース テンプレート (それらを含むテンプレート) と共有します。

于 2013-01-03T13:42:13.937 に答える
2

編集:

おそらく、テンプレート システムの外側にある html ファイルをロードすることをお勧めします。それでは、私のやり方では十分ではありません。

オプションは、基本テンプレートを拡張することです。

基本テンプレートは、論理的に間違っているため、サブ テンプレートを認識しないでください。

例:

base_template.html:

<html>
<div id='header'></div>
{% block content %}
    This text can be left out else it it will shown when nothing is loaded here
{% endblock %}

sub_template.html:

{% extends "base_template.html" %}

{% block content %}
    <h1>This is my subpage</h1>
{% endblock %}

ここでもっと読むことができます:

https://docs.djangoproject.com/en/1.2/topics/templates/

于 2013-01-03T14:10:49.700 に答える