FormPump

Software screenshot:
FormPump
Podrobnosti Software:
Verze: 0.1.7
Datum uploadu: 20 Feb 15
Vývojka: Dave Mankoff
Licence: Volný
Popularita: 5

Rating: nan/5 (Total Votes: 0)

FormPump je nástroj, Python, který integruje s populárními šablonovacího motory, což vám umožní čistě vyplnit HTML formulářů.
FormPump je sbírka Python rozšíření šablony engine napsaný, aby HTML formulářů mnohem jednodušší pracovat. Přímo řeší problémy spojené s vyplněním hodnoty do svých vstupů, použití značek na vaše vstupy a zobrazení chybové zprávy rychlým způsobem. Je to tím, že zavedením souboru Tagy / funkcí do šablony, které vytvářejí formy prvky v intuitivním a přirozeným způsobem, který je rychle adaptovat na stávající kód.
V současné době, FormPump podporuje Jinja2.
Úvodní [Jinja2] Příklad
(Příklady uvedené v tomto souboru README jsou uvedeny v Jinja2. Ostatní šablonovací jazyky budou mít podobné použití).
>>> Z formpump dovozu JinjaPump
>>> Z jinja2 dovozu prostředí
>>> Env = Environment (extensions = [JinjaPump])
>>> Tpl = env.from_string ('' '
... {% Form "příklad" class = "jednoduchý formulář"%}
... {% Štítek "inp"} Zadejte hodnotu: {% ENDLABEL%}
... {% Text "inp"%}
... {% Endform%}
... '' ')
>>> Print tpl.render ()


& Nbsp;
& Nbsp;

& Nbsp;>>> print tpl.render (form_vars = {'example ": {" INP ": 123}})

& Nbsp;
& Nbsp;

Ve výše uvedeném příkladu, vidíme jednoduché šablony objekt, který je vytvořen, který obsahuje jeden formulář. Při vykreslení bez argumentů, to prostě vytiskne formulář s žádnými informacemi vyplněna. Když speciální "form_vars" dict je k dispozici, aby zaplnil všechny hodnoty je možné najít na formě, ve které vytváří to.
Také si můžete všimnout dlouhé, ošklivé atributy id, které byly nastaveny. Ty jsou nutné, aby FormPump můžete přiřadit štítky se vstupy; FormPump dělá je jako to jde. Ty jsou zdarma, aby jim potlačit sami jednoduše poskytnutím své vlastní id a atributy na Vašich prvky. FormPump automaticky udržuje popisky a vstupů v šabloně a pokusí se inteligentně spojit je s navzájem, ale pouze tehdy, pokud vstupy nemají id specifikovány, a štítky nemají na to je uvedeno.
Vyplňování formulářů
FormPump vyplňuje formuláře, při pohledu do vstupních hodnot v určeném proměnné šablony. Tato proměnná výchozí form_vars ale může být konfigurován nastavením values_dict_name vlastnost prodloužení (pro Jinja2, nastavte tuto na životní prostředí: env.values_dict_name).
form_vars je slovník slovníky. Top klíče úrovni jsou formou kontextu identifikátory, podrobněji vysvětleny níže. Každý kontext formulář odkazuje na jiný slovník, který je jednoduchý soubor dvojic klíč-hodnota, která FormPump používá pro vyhledávání hodnoty pro formu. Klíče odkazují na název vstupu. Hodnoty jsou stát hodnota atributu * pro vstup, převést na unicode.
* Poznámka: U vstupů, jako je přepínač, kde jsou předem stanovené hodnoty, FormPump použije hodnotu form_vars určit, které tlačítko radio předvolbu, pokud existuje.
Formulář je Kontextové
FormPump vám umožní mít více než jednu formu v šabloně. Každý formulář může mít překrývající se jména vstupní. Formuláře jsou disambiguated tím, co FormPump volá kontext formulář. Výše uvedený příklad ukazuje kontext formulář nastaven na "příkladu" - to je řetězec bezprostředně následující klíčové slovo formuláře. Řetězec musí být konstantní řetězec, nikoli proměnné nebo jiný dynamický výraz, (tam je způsob, jak vyřešit tento popsány níže).
Jednoduchý příklad by měl objasnit jejich využití:
& Nbsp;>>> tpl = env.from_string ('' '
... {% Form "a"%}
... {% Text "inp"%}
... {% Endform%}
... {% Form "b"%}
... {% Text "inp"%}
... {% Endform%}
... '' ')
& Nbsp;>>> print tpl.render (form_vars = {'a': {"INP": ""}, "b": {"INP": "B"}})

& Nbsp;


& Nbsp;

Formulář kontexty vlastně slouží dvojímu účelu. Společný překážka se s různými formami HTML na jedné straně je to, že může být obtížné určit, které tvoří byla předložena, pokud oba mají stejnou akci atribut. Forma kontexty může pomoci.
Ve výchozím nastavení, jak je vidět tak daleko, že nemají přímý vliv na výstup. Nicméně, pokud nastavíte form_name_key nemovitosti na prodloužení, FormPump automaticky vložit skrytý vstup, který obsahuje formulář kontextu hodnotu jako jeho název, (pro Jinja2, nastavte to na životní prostředí).
& Nbsp;>>> env.form_name_key = '__'
& Nbsp;>>> tpl = env.from_string ('' '
... {% Form "příklad"%}
... {% Endform%}
... '' ')
& Nbsp;>>> print tpl.render ()


Předložená hodnota pak může být použita pro snadnou identifikaci odeslaný formulář na serveru.
Ale použití této funkce se vyvolá ještě jednu komplikaci! Řekněme, že chceme mít jeden formulář opakovat vícekrát na jedné stránce. S každým opakováním formy, chceme změnit proměnné, které jsou předplněných. Například, že máte seznam lidí ve společnosti, a chcete mít možnost upravovat a předkládat aktualizace na telefonní číslo pro každou z nich. Můžete se tedy chceme stejnou formname předložené zpět na server, ale _different formuláře kontext při vyplňování formuláře. Zadejte form_ctx funkci, která umožňuje změnit kontext, kde FormPump vyhledává hodnoty z běhu. Funkce form_ctx také umožňuje přiřadit dynamický kontext názvy formulářů, které standardní funkce formuláři není:
& Nbsp;>>> tpl = env.from_string ('' '
...

    ... {% Na osobu v lidech%}
    ...

  • ... {% Form "osoba"%}
    ... {% Form_ctx "člověk.% D"% osoba ['id']%}
    ... {% Skryté "id"%}
    ... {% Label "phone"%} {{osoba ['name']}} {% ENDLABEL%}
    ... {% Text "phone"%}
    ... {% Endform%}
    ...

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

... '' ')
& Nbsp;>>> lidé = [{"id": 1, 'name': "Bill B.", "telefon": "555-123-4567"},
... {"Id": 2, 'name': "Chris C.", "telefon": "555-7654-321"}]
& Nbsp;>>> print tpl.render (lidé = lidé,
... Form_vars = dict ([("člověk.% D"% osoba ['id'], osoba) na osobu u lidí]))

    & Nbsp;

  • & Nbsp;

    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;

    & Nbsp;

  • & Nbsp;

  • & Nbsp;

    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;

    & Nbsp;

Podíváte-li se výše uvedené, uvidíte dvě formy, a to jak se stejným názvem formuláře, ale s různými hodnotami vyplnili díky dynamické form_ctx. Form_ctx funkce má vliv na všechny vstupy, které přijdou po něm. Můžete zadat více form_ctx je ve formě, pokud chcete, každý z nich se předjímá předchozí. Všimněte si však, že jeho se může stát stylisticky matoucí.
formulář Chyby
Formulář chyb pracují podobně jako form_vars. Pomocí funkce chyby v šabloně ukázat, kde má chyby jít, a pak určete form_error jako vnořené slovníku slovníků obsahujících a všemi chybových zpráv, které chtěli dát dovnitř. Jakákoli chyba, která nenajde odpovídající hodnotu v form_error vyhledávání zůstane z finálního výstupu.
>>> Tpl = env.from_string ('' '
... {% Form "příklad"%}
... {% Error "field_A"%}
... {% Text "field_A"%}
... {% Error "field_B"%}
... {% Text "field_B"%}
... {% Endform%}
... '' ')
>>> Print tpl.render (form_vars = {"příklad": {"field_A": "val", "field_B": "val B"}},
... Form_errors = {"příklad": {"field_B": "error B"}})

& Nbsp;
& Nbsp;
Chyba B

& Nbsp;

Všimněte si také, že všechny vstupy, které najdou chybu bude mít "error" css třídu přidaný k nim.
Chybová hlášení ve výchozím nastavení je na výstupu jako nad & ndash; v div s třídou "chybové hlášení". Můžete zadat vlastní chyby styl zpráva přiřazením funkce jeho error_renderers slovníku a poté zadáním atribut renderer v šabloně: {% error renderer = "zvyk"%}. . Ve výchozím nastavení jsou všechny chyby použijte volbu "výchozí" pro vykreslení, které máte možnost přepsat

Požadavky na :

  • Python

Ostatní software developer Dave Mankoff

htmlmin
htmlmin

12 May 15

Komentáře k FormPump

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!