и.
Шаблон сторінки подібний моделі сторінок, які він генерує. Зокрема, він є правильною HTML сторінкою [8].
В якості обробника даних з форми використовуються скрипти написані мовою python.
Розглянемо створення простого шаблону (малюнки 7, 8) з використанням мови TAL.
Малюнок 7 - Форма авторизації при вході в систему без повідомлення
Рисунок 8 - Форма авторизації при вході в систему з повідомленням
Форма є шаблоном, написаним на звичайному html, а що з'являється повідомлення на червоному фоні є результатом використання TAL шаблонизатор, розглянемо цю частину коду.
Тут використані дві конструкції tal, це condition і content.
Condition - умова, при наявності значення err переданого на форму тег в якому встановлено умова і всі вкладені в нього відображаються, інакше не відображаються.
Content - описує вміст того тега, в якому воно перебувати. У нашому випадку це текст повідомлення міститься в змінної err. Конструкції мови tal можуть використовувати як стандартні конструкції, так і вбудовані конструкції мови python як у прикладі з конструкцією content.al шаблони так само дозволяють будувати динамічні списки.
Наприклад побудова списку типів питань на формі створення тестів (малюнок 9).
Малюнок 9 Список типів питань
Код описує побудову списку.
Tal: repeat - конструкція визначальна повторюваний тег, з усім своїм вмістом. Повторюватися він буде стільки разів, скільки рядків поверне Z SQL метод SQL_QUEST_TYPE. Z SQL методи - об'єкти Zope для створення параметризованих запитів до бази даних.
Приклад SQL методу:
OUT_ID_QUESTION, OUT_STATUS, OUT_NUM, _QUESTION_DESCRIPTION, OUT_ID_TESTREP_GET_QUESTION_LIST ()
Запит викликає збережену процедуру і передає в неї ідентифікатор тесту для отримання списку питань з цього тесту.
.6 Обробка даних за допомогою python скриптів
Розглянемо обробку даних на прикладі форми реєстрації
Оголосимо методи request і RESPONSE.
=container.REQUEST=request.RESPONSE
запити з отриманого набору надісланих даних значення полів з логіном та паролем
login=request.get («login», «»)=request.get («passw», «»)
упевнитися, що значення не є порожніми
if (login ==""):