4

テンプレートに関する Django チュートリアルを行っています。私は現在このコードにいます:

from django.template import Template, Context
>>> person = {'name': 'Sally', 'age': '43'}
>>> t = Template('{{ person.name }} is {{ person.age }} years old.')
>>> c = Context({'person': person})
>>> t.render(c)
u'Sally is 43 years old.'

私が理解していないのは、次の行です。

c = Context({'person': person})

この例で使用するには、両方の変数を person と呼ぶ必要がありますか、それとも単にランダムですか?

何を'person'指していて、何をperson指しているのか?

4

4 に答える 4

3
c = Context({'person': person})

Template最初の人 (引用符内) は、期待される変数名を示します。person2 番目の人は、コードの 2 行目で作成された変数を のperson変数に割り当てて、Contextに渡しTemplateます。2 番目のものは、その宣言と一致する限り、何でもかまいません。

これは物事を少し明確にするはずです:

from django.template import Template, Context
>>> someone = {'name': 'Sally', 'age': '43'}
>>> t = Template('{{ student.name }} is {{ student.age }} years old.')
>>> c = Context({'student': someone})
>>> t.render(c)
于 2010-06-23T08:06:36.450 に答える
1

この例で使用するには、両方の変数を person と呼ぶ必要がありますか、それとも単にランダムですか?

いいえ、これはただのランダムです。

「人」は何を指し、人は何を指していますか?

まず、{}はディクショナリ オブジェクトです。これは、連想配列またはハッシュの Python 用語です。これは基本的に、(ほぼ) 任意のキーを持つ配列です。

したがって、あなたの例で'person'は、キー、person値になります。

このディクショナリがテンプレートに渡されると、前に選択したキーを使用して、実際のオブジェクト (ここでは名前、年齢などを持つ人) にアクセスできます。

別の例として:

# we just use another key here (x)
c = Context({'x': person})

# this would yield the same results as the original example
t = Template('{{ x.name }} is {{ x.age }} years old.')
于 2010-06-23T08:08:01.843 に答える
0

c = Context({'person': person})
ここで、辞書の最初の 'person' は変数名 (キー) であり、他の人は上記の行で宣言した変数を表します。つまり、t = Template('{{ student. name }} は {{ student.age }} 歳です。') Contextはコンストラクタであり、1 つのオプションの引数と、変数名を変数値にマッピングする辞書を受け取ります。コンテキストを指定して Template オブジェクトの render() メソッドを呼び出し、テンプレートを「埋める」: 詳細については、指定されたリンク http://www.djangobook.com/en/2.0/chapter04.htmlを参照してください。

于 2015-02-20T07:57:27.020 に答える
0

{'person': person}標準の Python dictです。コンストラクターは dict を受け取り、Contextテンプレートでの使用に適したコンテキスト オブジェクトを生成します。メソッドは、Template.render()コンテキストをテンプレートに渡し、最終結果を受け取る方法です。

于 2010-06-23T08:18:49.503 に答える