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. Інші мови шаблонних буде подібним використанням.)
>>> Від formpump імпорту JinjaPump
>>> Від 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" диктує надається, вона заповнює які-небудь значення можна знайти в тому вигляді, як воно породжує його.
Ви також можете помітити, довгі, потворні атрибути ідентифікаторів, які були встановлені. Вони необхідні, щоб 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': {'вх': 'B'}})
<Дія форми = "" метод = "повідомлення">
І NBSP; <тип вхідного = значення "текст" ім'я "вх" = "" ID = "TCpYQKe8Dsx3jvRLqUCKRtUfsDGmDIxu" />

<Дія форми = "" метод = "повідомлення">
І NBSP; <тип вхідного = "текст" NAME = "вх" значення = "B" 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, 'ім'я': 'Chris C.', 'телефон': '555-7654-321'}]
І NBSP; >>> друк tpl.render (люди = люди,
... Form_vars = DICT ([('людина.% D "% осіб [' ID '], обличчя) для людини в людей]))

    І NBSP;

  • І NBSP; <форма дію = "" метод = "повідомлення"> <тип вхідного = "приховані" NAME = "__" значення = "людина" />
    І NBSP; <тип вхідного = "приховані" ім'я = значення "ID" = "1" ID = "SnX73O3VCSqGdKKfk14UL5W2riTZwuVq" />
    І NBSP; <мітка для = "weiOPnfowyRnF2tKTM9dGCVTUjmS7NZM"> Білл B.
    І NBSP; <тип вхідного = значення "текст" ім'я "телефон" = "555-123-4567" ID = "weiOPnfowyRnF2tKTM9dGCVTUjmS7NZM" />
    І NBSP;
    І NBSP;

  • І NBSP;

  • І NBSP; <форма дію = "" метод = "повідомлення"> <тип вхідного = "приховані" NAME = "__" значення = "людина" />
    І NBSP; <тип вхідного = "приховані" ім'я = значення "ID" = "2" ID = "TXyn6Vos37ixMPsNBsu8G10n9NlZrnlV" />
    І NBSP; <мітка для = "2EKjdwWOY1GdtCVK20dtZYAqBSs4Bo9i"> Chris C.
    І 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": "Val B"}},
... Form_errors = {"приклад": {"field_B": "помилка B"}})
<Дія форми = "" метод = "повідомлення">
І NBSP; <тип вхідного = значення "текст" ім'я "field_A" = "Вал" ID = "XkWRXAE0w18j0N6c1mHmtEsSCMPJZWRn" />
І NBSP;
помилка B

І NBSP; <введення класу = = = значення "помилка" типу "текст" ім'я "field_B" = "Val B" ID = "rP5RGqTnitBwA3oP8BZNcQ9oz3pFp0BC" />

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

Вимоги

  • Python

Інші програми розробника Dave Mankoff

htmlmin
htmlmin

12 May 15

FormPump

Коментар не знайдено
додати коментар
Включіть картинки!