2010-06-23 35 views
4

我正在做模板的Django教程。我目前是這個代碼: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指什麼?

+0

你真的應該做一個介紹性的Python教程嘗試學習的Django之前獲得更多信息,請訪問給定鏈路。 – 2010-06-23 08:09:40

回答

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

第一個人(在引號內)表示Template預期的變量名稱。第二個人在你的代碼的第二行至Context變量創建person變量分配給傳遞給Template。第二個可以是任何東西,只要它符合其聲明。

這應該澄清的東西一點點:

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) 
1

做這兩個變量需要被調用在這個例子中使用人或只是隨機的?

不,這僅僅是隨機的。

什麼是'人'指的是什麼,人是指什麼人?

首先,{}是一個字典對象,它是關聯數組或散列的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.') 
0

{'person': person}是一個標準的Python dictContext構造函數接受一個字典並生成適合在模板中使用的上下文對象。 Template.render()方法是如何將上下文傳遞給模板,並接收最終結果。

0

C =上下文({「人」:人})
在這裏,在詞典中的第一「人」是可變的名稱(鍵),其中如其他人代表您已宣佈在上面的行即 噸=可變模板(「{{student.name}}是{{student.age}}歲。」) 上下文是一個構造,帶一個可選的參數&它是一個字典映射變量名變量值。調用與上下文模板對象的render()方法來「填充」模板: http://www.djangobook.com/en/2.0/chapter04.html