仕事:
Webアプリの設計の実用的な背景。Webページはプロトタイプオブジェクト、ガジェットから構築され、それぞれが独自のview
関数(独自のコード、必ずしもdjango-view関数ではない)で個別に定義されています。また、「本番」Webページを作成するために、このページに関連する通常のビューに配置し、指定されたソースデータやその他のパラメーターに従ってWebページ要素を作成できます。たとえば、チャートガジェットがあり、ソースデータ、パラメータ、チャートタイプ、美しさ/色などを受け取り、チャートを描画します。特定のap、緩く結合されたコードとは別に保存するにはどうすればよいですか?どの設計アプローチが優れていますか?
私が試したこと:
私は「ばかげた」方法を試しました:
たとえば、私は簡単なビューを持っています:
from django.shortcuts import render_to_response
from django.template import Template, Context
from string import letters
def home(request):
t = Template("""<ul>
{% for key, value in d.items %}
<li>{{ key }}: {{ value }}</li>
{% endfor %}
</ul>""")
d = {k: v for v, k in enumerate(letters)}
return render_to_response('home.html', {'t': t, 'd':d})
そしてテンプレート:
<html>
<head>
<title>Django tests</title>
</head>
<body>
{% include t with d=d %}
</body>
</html>
そのような設定で私は得ます:TemplateDoesNotExist
答えについての期待:
ウェブアプリプログラムのバックエンドの同様に別のコードのチャンクに、ウェブページの他の要素とは多少異なり、それ自体の生活によって少し生きるように設計されたウェブページのチャンクを保存するための合理的なスキームを探しています。例として、次のようなプロジェクトを提供できます。
ありがとうございました!
ps
django-docsからの抜粋:
- 拡張:
{%extends variable%}は変数の値を使用します。変数が文字列に評価される場合、Djangoはその文字列を親テンプレートの名前として使用します。変数がTemplateオブジェクトに評価される場合、Djangoはそのオブジェクトを親テンプレートとして使用します。
つまり、{%extends%}タグを使用すると、問題のImが話している操作が確実に可能になるということです。
- 含める:
この例には、変数template_nameに名前が含まれているテンプレートの内容が含まれています。
{% include template_name %}
つまり、に渡される変数は{% include %}
、ファイル名の文字列だけを取得できることを意味します。そして、それが本当なら、私の質問に対する明確な答えです-変数で定義されたテンプレートを通常のテンプレートに含めることはできません。Pythonでは単語がの同義語として使用される可能性がある
ため、私にとってはまだ少しあいまいです。name
variable