2012-05-21 1 views
4

У меня нет простого доступа к коду, я работаю только с шаблоном Мако, и мне хотелось бы знать все значения, которые были доступны для шаблона, который я можешь использовать.Вывести все переменные в шаблон Мако

Есть ли способ добавить что-то в шаблон, чтобы результат вывода содержал все переменные (рекурсивно)?

ответ

8

Вы ищете the context object. Через минуту или две пьесы:

${context.keys()} # list of direct variable names 
${context.__dict__} # probably more along what you're looking for. 

Весь раздел на Mako Runtime environment, вероятно, стоит читать, особенно в той части «All the built in names». Вы можете найти другую должность, я только что сделал соответствующие:

Mako how to check if variable exists or not.

0

Давайте попробуем это я думаю, что это должно помочь:

${globals()} 
+0

Спасибо за предложения. Но он не выводит то, что мне нужно. Например, у меня, конечно, есть переменные «объекты» в моем шаблоне (который я могу пропустить), но в тексте, который выводит «globals()», единственным экземпляром «объектов» является этот: «'__doc__': «Встроенные функции, исключения и другие объекты. \ N \ nNoteworthy: None - это объект« nil »; Эллипсис представляет «...» в срезах. »« :) –

+0

так и какой тип переменных объектов? – Denis

+0

Непеременные объекты, переменная с именем «объекты». :) Я могу прочитать значение objects.name, например. Я хотел бы иметь список, где я могу видеть, что я могу добавить, например, среди других значений значение «objects.name» в мой шаблон, или, по крайней мере, что «объекты» доступны. –