Система шаблонизации предназначена для того, чтобы вставить данные в соответствующие места файла-шаблона. Например, бланк настроек абонента представляет собой шаблон, в который NoDeny вставляет данные абонента в нужные места. Шаблонизатор NoDeny во многом повторяет синтаксис стандартного django шаблонизатора, но есть небольшие отличия.
Доступ к полям сложных структур
| Шаблон | Входные данные | Результат | 
| 
Данные клиента:
fio = {{user.fio}}
phone = {{user.data._adr_phone}}
     | 
user => {
    fio  => 'Иванов Сергей',
    name => 'Ivanov',
    data => {
        _adr_phone => '067-12312312',
        _adr_house => '25',
        _adr_room  => '14',
    }
}
     | 
Данные клиента:
fio = Иванов Сергей
phone = 067-12312312
     | 
Условия
| Шаблон | Входные данные | Результат | 
| 
Здравствуйте,
    {% if name %}{{name}}
    {% else %}незнакомец
    {% endif %}
На вашем счету {{balance}} рублей
     | 
name    = ''
balance = 15
     | 
Здравствуйте, незнакомец
На вашем счету 15 рублей
     | 
| 
{% if cash > 1000 %}
    Очень большая сумма!
{% else %}
    Всего-то {{cash}} рублей?
{% endif %}
     | 
cash = 999
     | 
Всего-то 999 рублей?
     | 
| 
{% if name == 'admin' && error %}
    Произошла ошибка: {{error}}
{% endif %}
     | 
name  = 'admin'
error = 'wrong sql'
     | 
Произошла ошибка: wrong sql
     | 
Циклы
| Шаблон | Входные данные | Результат | 
| 
{% for user in users %}
    {{user.name}} : {{user.fio}}
{% endfor %}
     | 
users => {
    15 => {
        fio  => 'Петров',
        name => 'Petroff'
    },
    16 => {
        fio  => 'Болтунов',
        name => 'Mol4un'
    },
};
     | 
Petroff : Петров
Mol4un : Болтунов
     | 
Вызов метода
| Шаблон | Входные данные | Результат | 
| 
message: {{msg.show()}}
     | 
my $msg = bless { data => 'ok, man' };
sub show { return $msg->{data}.'!'};
nod::tmpl::render('test.tmpl', msg => $msg);
     | 
message: ok, man!
     | 
Обратите внимание, что в отличие от django шаблонизатора, после вызова метода мы явно ставим круглые скобки.
Фильтрация спецсимволов
| Шаблон | Входные данные | Результат | 
| 
ФИО: {{fio|safe}}
     | 
fio => '<test>'
     | 
ФИО: <test>
     | 
Вычисления
| Шаблон | Входные данные | Результат | 
| 
{% eval i = 0 %}
{% for word in words %}
    {% eval i = i + 1 %}
    {{i}}: {{word}}
{% endfor %}
     | 
words=> ['aaa', 'bbb', 'ccc']
     | 
1: aaa
2: bbb
3: ccc
     |