2010-06-23 3 views
4

Я делаю учебник по шаблонам Django. Я в настоящее время этот код:Django Template

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. –

ответ

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

Первый человек (в кавычках) обозначает имя переменной, что Template предпологает. Второй человек присваивает переменную person, созданную во второй строке вашего кода, переменной переменной Context, которая должна быть передана в 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

Do обе переменные должны называться человеком, который будет использоваться в этом примере, или это просто случайное?

Нет, это просто случайно.

Что такое «лицо», на которое ссылается и на что ссылается лицо?

Во-первых, {} - объект словаря, который является терминологией python для ассоциативного массива или хэша. Это в основном массив с (почти) произвольными ключами.

Таким образом, в вашем примере 'person' будет ключом, person значение.

Когда этот словарь будет передан в шаблон, вы можете получить доступ к объектам real (здесь, человек, с именем, возрастом и т. Д.) С помощью ключа, который вы выбираете раньше.

В качестве альтернативного примера:

# 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 dict. Конструктор Context принимает dict и создает объект контекста, подходящий для использования в шаблоне. Метод Template.render() - это то, как вы передаете контекст шаблону и получаете окончательный результат.

0

с = Context ({ «человек»: человек})
Здесь первое «лицо» в словаре является имя переменной (ключ), где в качестве другого лица представляют переменную, которую вы объявленную в строке выше т.е. т = Шаблон ('{{student.name}} является {{student.age}} лет.') Контекст - это конструктор, который принимает один необязательный аргумент & его словарь, сопоставляющий имена переменных с переменными.Вызов метода в шаблоне объекте визуализации() с контекстом, чтобы «заполнить» шаблон: , чтобы получить дополнительную информацию, посетите данную ссылку http://www.djangobook.com/en/2.0/chapter04.html