FormPump

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

Rating: nan/5 (Total Votes: 0)

FormPump е Python инструмент, който се интегрира с популярни темплейти двигатели, което ви позволява да безконфликтно попълнете HTML форми.
The FormPump е колекция от Python разширения шаблон двигатели, написани, за да HTML форми много по-лесно да се работи. Това пряко се занимава с проблемите, свързани с попълването на ценности в своите суровини, тяхното прилагане, както на вашите входове и показване на съобщения за грешки в бърз начин. Това се постига чрез въвеждане на набор от етикети / функции в шаблона, който създава ведомости елементи в един интуитивен и естествен начин, че е бързо да се адаптира в действащия Кодекс.
В момента, FormPump подкрепя Jinja2.
<Силен> встъпителен [Jinja2] Пример
(Примерите, показани в тази README са показани на Jinja2. Други темплейти езици ще имат сходна употреба.)
>>> От formpump внос JinjaPump
>>> От jinja2 внос Environment
>>> ENV = Environment (разширения = [JinjaPump])
>>> Гражданска отговорност = env.from_string ('' '
... {% Формуляр клас "пример" = "проста форма"%}
... {% Етикет "INP"} Въведете стойност: {% endlabel%}
... {% Текст "INP"%}
... {% Endform%}
... '' ')
>>> Печат tpl.render ()
<Форма действие = "" клас = "" метод = "проста форма пост">
& Nbsp; <етикет за = "6GiCLEkUToekNy8xuN8AnT2esddU8MG8"> Въведете стойност:
& Nbsp; <вход тип = "текст" име = стойност "INP" = "" ID = "6GiCLEkUToekNy8xuN8AnT2esddU8MG8" />

& Nbsp;>>> печат tpl.render (form_vars = {"пример": {"INP": 123}})
<Форма действие = "" клас = "" метод = "проста форма пост">
& Nbsp; <етикет за = "pnBP2IoFmfExTQdDZe44GKsFN6wrVOPu"> Въведете стойност:
& Nbsp; <вход тип = "текст" име = стойност "INP" = "" 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 да определи кои радио бутон, за да изберете предварително, ако има такива.
Форма за контекст на
FormPump ви позволява да имате повече от една форма в шаблона. Всяка форма може да имат припокриващи имена входни. Формулярите са disambiguated от какво FormPump призовава контекста на форма. Примерът по-горе показва контекст форма настроен на "например" - това е низ веднага след форма ключова дума. Низът трябва да бъде постоянен низ, не е променлива или друга динамична изразяване, (има начин около това, обхванат по-долу).
Един прост пример следва да се изясни тяхната употреба:
& Nbsp;>>> Гражданска отговорност = env.from_string ('' '
... {% Форма "на"%}
... {% Текст "INP"%}
... {% Endform%}
... {% Форма "б"%}
... {% Текст "INP"%}
... {% Endform%}
... '' ')
& Nbsp;>>> печат tpl.render (form_vars = {"а": {"INP": "A"}, "б": {"INP": 'B'}})
<Форма действие = "" метод = "пост">
& Nbsp; <тип вход = "текст" име = стойност "INP" = "A" ID = "TCpYQKe8Dsx3jvRLqUCKRtUfsDGmDIxu" />

<Форма действие = "" метод = "пост">
& Nbsp; <тип вход = "текст" име = "INP" стойност = "B" ID = "8qXe3PUDgmDPAD3SOdQp6xEq3dYokLyU" />

Форма контексти действително да имат двойна цел. Една обща пречка с която има множество HTML форми на една страница е, че може да бъде трудно да се определи кой вид е била подадена, ако и двете форми имат същия атрибут действие. Форма контекст могат да помогнат.
С настройките по подразбиране, както е показано досега, те нямат пряк ефект върху продукцията. Въпреки това, ако сте задали form_name_key собственост на разширяването, FormPump ще поставите автоматично скрит вход, който съдържа контекст стойността на форма като името си, (за Jinja2, задайте тази на околната среда).
& Nbsp;>>> env.form_name_key = "__"
& Nbsp;>>> Гражданска отговорност = env.from_string ('' '
... {% Форма "например"%}
... {% Endform%}
... '' ')
& Nbsp;>>> печат tpl.render ()
<Форма действие = "" метод = "пост"> <вход тип = "скрити" име = "__" стойност = "например" />

Представената стойност може да се използва, за да определите лесно представеното на сървъра.
Но, като се използва тази функция води до още едно усложнение! Кажете искаме да имаме една форма повтаря няколко пъти на една страница. С всяко повторение на формата, ние искаме да променим променливите, които са предварително напълнени. Да кажем, че имате списък на хората в една компания и искате да сте в състояние да редактирате и да подавате актуализации на телефонния номер за всеки един. Следователно вие искате същото formname подава обратно на сървъра, но форма контекст _different при попълване на формуляра. Въведете form_ctx функция, която ви позволява да промените контекста където FormPump поглежда нагоре стойности от в движение. Функцията form_ctx също ви позволява да зададете динамични имена контекст, за да си форми, които стандартната форма функция не:
& Nbsp;>>> Гражданска отговорност = env.from_string ('' '
...


    ... {% За човек в хората%}
    ...

  • ... {% Форма "лице"%}
    ... {% Form_ctx "човек.% Г"% лице ['ID']%}
    ... {% Скрита "ID"%}
    ... {% Етикет "телефон"%} {{лице ['име']}} {% endlabel%}
    ... {% Текст "телефон"%}
    ... {% Endform%}
    ...

  • ... {% Endfor%}
    ...

... '' ')
& Nbsp;>>> хора = [{"ID": 1, "име": "Бил Б.", "телефон": "555-123-4567 '},
... {"ID": 2, "име": "Крис В.", "телефон": "555-7654-321 '}]
& Nbsp;>>> печат tpl.render (хора = хора,
... Form_vars = Dict ([("човек.% Г"% лице ['ID'], човек) за човек в хората]))

    & Nbsp;

  • & Nbsp; <форма действие = "" метод = "пост"> <вход тип = "скрити" име = "__" стойност = "човек" />
    & Nbsp; <тип вход = "скрити" име = стойност "ID" = "1" ID = "SnX73O3VCSqGdKKfk14UL5W2riTZwuVq" />
    & Nbsp; <етикет за = "weiOPnfowyRnF2tKTM9dGCVTUjmS7NZM"> Bill Б.
    & Nbsp; <тип вход = "текст" име = стойност "телефон" = "555-123-4567" ID = "weiOPnfowyRnF2tKTM9dGCVTUjmS7NZM" />
    & Nbsp;
    & Nbsp;

  • & Nbsp;

  • & Nbsp; <форма действие = "" метод = "пост"> <вход тип = "скрити" име = "__" стойност = "човек" />
    & Nbsp; <тип вход = "скрити" име = стойност "ID" = "2" ID = "TXyn6Vos37ixMPsNBsu8G10n9NlZrnlV" />
    & Nbsp; <етикет за = "2EKjdwWOY1GdtCVK20dtZYAqBSs4Bo9i"> Chris C.
    & Nbsp; <тип вход = "текст" име = стойност "телефон" = "555-7654-321" ID = "2EKjdwWOY1GdtCVK20dtZYAqBSs4Bo9i" />
    & Nbsp;
    & Nbsp;

Ако се вгледате по-горе, ще видите две форми, двете със същото име форма, но с различни стойности, попълнени благодарение на динамичното form_ctx. The form_ctx функция засяга всички входове, които идват след него. Можете да посочите няколко form_ctx е във форма, ако искате, всеки един се предопределя от предишното. Имайте предвид обаче, че му може да стане стилистично объркващо.
<Силен> Форма Грешки
Грешки Форма работят много като form_vars. Можете да използвате функцията за грешка в шаблона за да посочи къде грешки трябва да вървят, и след това определете form_error като вложените речника на речници, съдържащи някое и всички съобщения за грешки, които искате да се сложи вътре. Всяка грешка, че не се намери съответната стойност в form_error справка ще бъде взета предвид при крайната продукция.
>>> Гражданска отговорност = env.from_string ('' '
... {% Форма "например"%}
... {% Грешка "field_A"%}
... {% Текст "field_A"%}
... {% Грешка "field_B"%}
... {% Текст "field_B"%}
... {% Endform%}
... '' ')
>>> Печат tpl.render (form_vars = {"пример": {"field_A": "Вал A", "field_B": "Вал B"}},
... Form_errors = {"пример": {"field_B": "грешка B"}})
<Форма действие = "" метод = "пост">
& Nbsp; <тип вход = "текст" име = стойност "field_A" = "Вал A" ID = "XkWRXAE0w18j0N6c1mHmtEsSCMPJZWRn" />
& Nbsp; <Разделение клас = "грешка-съобщение"> грешка B

& Nbsp; <вход клас = "грешка" тип = "текст" име = стойност "field_B" = "Вал B" ID = "rP5RGqTnitBwA3oP8BZNcQ9oz3pFp0BC" />

Имайте предвид също така, че всички входове, които намират за грешка, ще имат "грешка" CSS добавя към тях класа.
Съобщения за грешки по подразбиране се извеждат като по-горе и се стори; в Div с клас "грешка-послание". Можете да укажете собствена грешка стил съобщение чрез възлагане функции на своята error_renderers речника и след уточняване на рендер атрибут в шаблона: {% грешка рендер = "обичай"%}. . По подразбиране всички грешки използват "по подразбиране" за изобразяване, която вие сте свободни да замени

<силни> Изисквания :

  • Python

Друг софтуер на разработчика Dave Mankoff

htmlmin
htmlmin

12 May 15

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

Коментари не е намерена
добавите коментар
Включете на изображения!