Джанго шаблон - PullRequest
       29

Джанго шаблон

4 голосов
/ 23 июня 2010

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

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 ]

3 голосов
/ 23 июня 2010
c = Context({'person': person})

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

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

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

На что ссылается «человек» и на что ссылается «человек»?

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

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

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

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

# 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 голосов
/ 20 февраля 2015

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

0 голосов
/ 23 июня 2010

{'person': person} - это стандартный Python dict . Конструктор Context принимает dict и создает объект контекста, подходящий для использования в шаблоне. Метод Template.render() - это способ передачи контекста в шаблон и получения окончательного результата.

...