FormPump

Скриншот программы:
FormPump
Детали программы:
Версия: 0.1.7
Дата загрузки: 20 Feb 15
Разработчик: Dave Mankoff
Тип распространения: Бесплатная
Популярность: 5

Rating: nan/5 (Total Votes: 0)

FormPump является инструментом Python, который интегрируется с популярными шаблонных двигателей, что позволяет аккуратно заполнить HTML форм.
FormPump является коллекция Python расширений шаблон двигателей, написанных сделать HTML формы гораздо проще работать. Он непосредственно решает проблемы, связанные с заполнением ценностей в ваших входов, нанесения этикеток на ваших входов и отображение сообщений об ошибках в быстрый способ. Она делает это путем введения набора тегов / функций в шаблон, которые создают формы элементов в интуитивно понятный и естественный способ, который быстро адаптироваться в существующем коде.
В настоящее время, FormPump поддерживает jinja2.
Вводный [jinja2] Пример
(Примеры, приведенные в данном файле приведены в jinja2. Другие языки шаблонных будет одинаковое использование.)
>>> От импорта JinjaPump formpump
>>> От импорта jinja2 окружающей среды
>>> ENV = окружающей среды (расширения = [JinjaPump])
>>> TPL = env.from_string ('' '
... {% Форма "пример" класс = "простой формы"%}
... {% Метка 'вх} Введите значение: {%}% ENDLABEL
... {% Текста "вх"%}
... {%}% EndForm
... '' ')
>>> Печати tpl.render ()
<Форма действие = "" = класс "" метод = "простой формы после">
& NBSP; <метка для = "6GiCLEkUToekNy8xuN8AnT2esddU8MG8"> Введите значение:
& NBSP; <тип входного = "текст" имя = значение "вх" = "" ID = "6GiCLEkUToekNy8xuN8AnT2esddU8MG8" />

& NBSP;>>> печать tpl.render (form_vars = {'пример': {'вх': 123}})
<Форма действие = "" = класс "" метод = "простой формы после">
& NBSP; <метка для = "pnBP2IoFmfExTQdDZe44GKsFN6wrVOPu"> Введите значение:
& NBSP; <тип входного = "текст" имя = значение "вх" = "" ID = "pnBP2IoFmfExTQdDZe44GKsFN6wrVOPu" />

В приведенном выше примере, мы видим, что простой объект шаблон создается, который содержит одну форму. Когда предоставляется без каких-либо аргументов, он просто выводит форму с заполненной нет информации. Когда специальные "form_vars" DICT предоставляется, она заполняет какие-либо значения можно найти в том виде, как оно порождает его.
Вы также можете заметить, длинные, уродливые атрибуты идентификаторов, которые были установлены. Они необходимы, чтобы FormPump можно связать этикетки с входами; FormPump делает их, как она идет. Вы можете переопределить их самостоятельно, просто указав свой собственный идентификатор и атрибуты на ваших элементов. FormPump автоматически отслеживает этикеток и входов в шаблоне и пытается разумно связать их друг с другом, но только тогда, когда входы не имеют идентификаторы указано, и метки не имеют для это указано.
Заполнение форм
FormPump заполняет формы, глядя на входные значения в указанном переменной шаблона. Эта переменная по умолчанию form_vars но может быть настроен путем установки values_dict_name свойство расширения (для jinja2, установите на окружающую среду: env.values_dict_name).
form_vars это словарь словарей. Ключи верхнего уровня являются идентификаторы контекста формы, объясняется более подробно ниже. Каждый контекст форма относится к другой словарь, который является простой набор пар ключ-значение, FormPump использует для поиска значения для формы. Клавиши обозначают названия входного сигнала. Значения стать значение атрибута * для ввода, преобразуется в Unicode.
* Примечание: Для входов, таких как радио-кнопки, где значения заданного, FormPump использует значение form_vars определить, какая кнопка радио для предварительного, если таковые имеются.
Форма для Context
FormPump позволяет иметь в шаблоне более одной формы. Каждая форма может иметь пересекающиеся имена ввода. Формы конфликт имён тем, что FormPump вызывает контекстное форма. В приведенном выше примере показывает контекст вид установлен на "Например" - это строка сразу же после виде ключевого слова. Строка должна быть постоянной строкой, а не переменной или другим динамическое выражение, (есть способ обойти это покрыты ниже).
Простой пример должен разъяснить их использование:
& NBSP;>>> TPL = env.from_string ('' '
... {% Форма "а"%}
... {% Текста "вх"%}
... {%}% EndForm
... {% Форма "б"%}
... {% Текста "вх"%}
... {%}% EndForm
... '' ')
& NBSP;>>> печать tpl.render (form_vars = {'а': {'вх': 'А'}, 'б': {'вх': 'B'}})
<Форма действие = "" метод = "сообщение">
& NBSP; <тип входного = значение "Текст" имя "вх" = "А" ID = "TCpYQKe8Dsx3jvRLqUCKRtUfsDGmDIxu" />

<Форма действие = "" метод = "сообщение">
& NBSP; <тип входного = "текст" имя = "вх" значение = "Б" ID = "8qXe3PUDgmDPAD3SOdQp6xEq3dYokLyU" />

Контексты Форма самом деле имеют двойное назначение. Общий препятствием с наличием нескольких форм HTML на одной странице, что может быть трудно определить, какой вид был представлен, если обе формы имеют тот же атрибут действий. Контексты Форма может помочь.
С настройками по умолчанию, как показано до сих пор, они не имеют прямого влияния на выход. Тем не менее, если вы установите form_name_key недвижимость на расширение, FormPump автоматически вставить скрытый вход, который содержит значение формы контекстное как его имя, (для jinja2, установите этот на окружающую среду).
& NBSP;>>> env.form_name_key = '__'
& NBSP;>>> TPL = env.from_string ('' '
... {% Форма "пример"%}
... {%}% EndForm
... '' ')
& NBSP;>>> печать tpl.render ()
<Форма действие = "" метод = "сообщение"> <тип входного = "скрытые" NAME = "__" значение = "пример" />

Представленный значение может затем использоваться, чтобы легко определить, представленную форму на сервере.
Но, используя эту функцию, воспитывает еще одну сложность! Скажем, мы хотим, чтобы одна форма повторяется несколько раз на одной странице. С каждым повторением формы, мы хотим, чтобы изменить переменные, которые укажи. Например, у вас есть список людей, в компании, и вы хотите, чтобы иметь возможность редактировать и представить обновления на телефонный номер для каждого из них. Таким образом, вы хотите же FORMNAME представленный на сервер, но контекст вид _different при заполнении формы. Введите form_ctx функцию, которая позволяет изменять контекст, в котором FormPump смотрит значения из на лету. Функция form_ctx также позволяет назначить имена динамических контекстно к формам, которые стандартная функция формы не:
& NBSP;>>> TPL = env.from_string ('' '
...


    ... {% Для человека людей%}
    ...

  • ... {% Форма "человек"%}
    ... {% Form_ctx "человек.% D"% человек ['ID']}%
    ... {% Скрыта "ID"%}
    ... {% Этикетки "телефон"%} {{человек ['имя']}} {%}% ENDLABEL
    ... {% Текста "телефон"%}
    ... {%}% EndForm
    ...

  • ... {%}% ENDFOR
    ...

... '' ')
& NBSP;>>> люди = [{'ID': 1, 'имя': 'Билл В. »,« телефон »:« 555-123-4567'},
... {'ID': 2, 'имя': 'Крис С. "," телефон ":" 555-7654-321 "}]
& NBSP;>>> печать tpl.render (люди = люди,
... Form_vars = DICT ([('человек.% D'% человек ['ID'], лицо) для человека в людей]))

    & NBSP;

  • & NBSP; <форма действие = "" метод = "сообщение"> <тип входного = "скрытые" NAME = "__" значение = "человек" />
    & NBSP; <тип входного = "скрытые" имя = значение "ID" = "1" ID = "SnX73O3VCSqGdKKfk14UL5W2riTZwuVq" />
    & NBSP; <метка для = "weiOPnfowyRnF2tKTM9dGCVTUjmS7NZM"> Билл Б.
    & NBSP; <тип входного = значение "Текст" имя "телефон" = "555-123-4567" ID = "weiOPnfowyRnF2tKTM9dGCVTUjmS7NZM" />
    & NBSP;
    & NBSP;

  • & NBSP;

  • & NBSP; <форма действие = "" метод = "сообщение"> <тип входного = "скрытые" NAME = "__" значение = "человек" />
    & NBSP; <тип входного = "скрытые" имя = значение "ID" = "2" ID = "TXyn6Vos37ixMPsNBsu8G10n9NlZrnlV" />
    & NBSP; <метка для = "2EKjdwWOY1GdtCVK20dtZYAqBSs4Bo9i"> Крис С.
    & NBSP; <тип входного = значение "Текст" имя "телефон" = "555-7654-321" ID = "2EKjdwWOY1GdtCVK20dtZYAqBSs4Bo9i" />
    & NBSP;
    & NBSP;

Если вы посмотрите выше, вы увидите две формы, как с тем же именем формы, но с разными значениями заполнены благодаря динамической form_ctx. Form_ctx функция влияет на все входы, которые приходят после него. Вы можете указать несколько form_ctx годов в форме, если вы хотите, каждый предвосхищая предыдущего. Заметим, однако, что его может стать стилистически заблуждение.
Ошибки Форма
Ошибки Форма работать так же, как form_vars. Вы можете использовать функцию ошибки в шаблоне, чтобы указать, где ошибки должны идти, а затем укажите form_error в виде вложенного словаря словарей, содержащих любой и все сообщения об ошибках вы хотите, чтобы положить в. Все ошибки, не найти соответствующее значение в form_error поиска останется из окончательного вывода.
>>> TPL = env.from_string ('' '
... {% Форма "пример"%}
... {% Ошибка "field_A"%}
... {% Текста "field_A"%}
... {% Ошибка "field_B"%}
... {% Текста "field_B"%}
... {%}% EndForm
... '' ')
>>> Печати tpl.render (form_vars = {"пример": {"field_A": "Вал А", "field_B": "Вал В"}},
... Form_errors = {"пример": {"field_B": "ошибка B"}})
<Форма действие = "" метод = "сообщение">
& NBSP; <тип входного = значение "Текст" имя "field_A" = "Вал А" ID = "XkWRXAE0w18j0N6c1mHmtEsSCMPJZWRn" />
& NBSP;
Ошибка Б

& NBSP; <ввод класса = = = значение "ошибка" типа "текст" имя "field_B" = "Вал В" ID = "rP5RGqTnitBwA3oP8BZNcQ9oz3pFp0BC" />

Отметим также, что любые входы, которые находят ошибку будет иметь "ошибка" CSS класс добавлен в них.
Сообщения об ошибках по умолчанию выводятся, как и выше и mdash; в DIV с классом "сообщения об ошибке". Вы можете задать свой собственный стиль ошибке сообщение путем присвоения функции в словарь error_renderers, а затем указав атрибут визуализации в шаблоне: {% ошибка визуализации = "обычай"%}. . По умолчанию, все ошибки использовать "по умолчанию" визуализации, которые вы можете переопределить

Требования

  • Python

Другие программы разработчика Dave Mankoff

htmlmin
htmlmin

12 May 15

Комментарии к FormPump

Комментарии не найдены
добавить комментарий
Включите картинки!