FormPump

Screenshot Software:
FormPump
Mga detalye ng Software:
Bersyon: 0.1.7
I-upload ang petsa: 20 Feb 15
Nag-develop: Dave Mankoff
Lisensya: Libre
Katanyagan: 5

Rating: nan/5 (Total Votes: 0)

FormPump ay isang Python tool na Sumasama gamit ang mga sikat templating engine, na nagpapahintulot nang malinis mong punan ang mga form ng HTML.
Ang FormPump ay isang koleksyon ng Python extension ng template engine nakasulat na gawing mas madali ang mga form HTML upang gumana sa. Ito nang direkta tackles ang mga problema na may kaugnayan sa pagpuno ng mga halaga sa iyong mga input, sa paglalapat ng mga label sa iyong input at pagpapakita ng mga error na mensahe sa isang mabilis na paraan. Ginagawa nito ito sa pamamagitan ng pagpapakilala ng isang hanay ng mga tag / mga pag-andar sa inyong template na lumikha ng mga form ng elemento sa isang madaling maunawaan at natural na paraan na mabilis na umangkop sa mga umiiral na code.
Sa kasalukuyan, sinusuportahan ng FormPump Jinja2.
Ang isang pambungad [Jinja2] Halimbawa
(Mga Halimbawa ipinapakita sa Readme ay ipinapakita sa Jinja2. Iba pang mga wikang templating ay magkakaroon ng katulad na paggamit.)
>>> Mula formpump import JinjaPump
>>> Mula jinja2 import Kapaligiran
>>> Env = Kapaligiran (extension = [JinjaPump])
>>> Tpl = env.from_string ('' '
... {% Form na "halimbawa" class = "simpleng form"%}
... {% Ang label na 'inp'} Magpasok ng isang halaga: {% endlabel%}
... {% Tekstong "inp"%}
... {% Endform%}
... '' ')
>>>-Print tpl.render ()

& Nbsp;
& Nbsp;

& Nbsp;>>>-print tpl.render (form_vars = {'halimbawa': {'inp': 123}})

& Nbsp;
& Nbsp;

Sa halimbawa sa itaas, makikita natin ang isang simpleng template object Nililikha na naglalaman ng isang form. Kapag na-render nang walang anumang mga argument, mga print lang ang form na walang impormasyon na napunan. Kapag ang mga espesyal na "form_vars" dict ay ibinigay, punan ito ng anumang mga halaga mahanap ito sa anyo na ito ay bumubuo ito.
Maaari mo ring mapansin ang haba, mga katangian ng pangit id na set. Ang mga ito ay kinakailangan upang maaaring iugnay FormPump mga label sa input; FormPump gumagawa ng mga ito bilang mga pumupunta dito. Ikaw ay libre upang i-override ang mga ito sa iyong sarili sa pamamagitan lamang ng pagbibigay ng iyong sariling id at para sa mga katangian sa iyong mga elemento. FormPump awtomatikong sinusubaybayan ng mga label at input sa template at nagtatangkang Matalinong iugnay ang mga ito sa isa't isa, ngunit lamang kapag ang input ay walang id na tinukoy, at mga label ay walang tinukoy para sa.
pagpuno sa Form
FormPump punan ang mga form sa pamamagitan ng pagtingin up ang mga halaga ng input ng itinalagang variable na template. Variable na mga default na ito sa form_vars ngunit maaaring i-configure pamamagitan ng pagtatakda ng values_dict_name ari-arian ng extension (para sa Jinja2, itakda ito tungkol sa kapaligiran: env.values_dict_name).
form_vars ay isang diksyunaryo ng mga diksyunaryo. Nangungunang mga key na antas ay ang form sa konteksto identifier, ipinaliwanag nang mas detalyado sa ibaba. Ang bawat konteksto form na tumutukoy sa isa pang diksyunaryo kung saan ay isang simpleng hanay ng mga pares ng key-value na gumagamit ng FormPump sa lookup halaga para sa form na ito. Ang key sumangguni sa pangalan ng pag-input. Ang mga halaga ay magiging katangian halaga * para sa input, convert sa Unicode.
* Paalala: Para sa mga input tulad ng isang radio button, kung saan ang mga halaga ay paunang natukoy na, FormPump ay gumagamit ng halaga form_vars upang matukoy kung aling mga pindutan ng radyo upang preselect, kung mayroon man.
Konteksto form
FormPump ay nagbibigay-daan sa iyo upang magkaroon ng higit sa isang paraan sa iyong template. Ang bawat paraan ay maaaring magkaroon o-overlap na mga pangalan ng input. Ang mga form ay disambiguated sa pamamagitan ng kung ano ang tawag FormPump ang form sa konteksto. Ang halimbawa sa itaas ay nagpapakita ng isang form na konteksto nakatakda sa "halimbawa" - ito ay ang string kaagad na sumusunod sa form na keyword. Ay dapat na isang pare-pareho ang string, hindi isang variable o iba pang mga dynamic na expression, (doon ay isang paraan sa paligid na ito sakop sa ibaba) string ang.
Ang isang simpleng halimbawa ay dapat na linawin ang kanilang paggamit:
& Nbsp;>>> tpl = env.from_string ('' '
... {% Form na "ng"%}
... {% Tekstong "inp"%}
... {% Endform%}
... {% Form na "b"%}
... {% Tekstong "inp"%}
... {% Endform%}
... '' ')
& Nbsp;>>>-print tpl.render (form_vars = {'ang isang': {'inp': 'A'}, 'b': {'inp': 'B'}})

& Nbsp;


& Nbsp;

Konteksto ng Form talagang maghatid ng dual layunin. Ang isang karaniwang balakid sa pagkakaroon ng maraming paraan ng HTML sa isang solong pahina ay maaaring maging mahirap upang matukoy kung aling form ay isinumite kung ang parehong mga anyo ay may parehong mga katangian ng pagkilos. Ay maaaring makatulong sa konteksto form.
Gamit ang mga default na setting, tulad ng ipinapakita sa gayon ngayon, ang mga ito ay walang direktang epekto sa output. Gayunpaman, kung nagtakda ka ng form_name_key ari-arian sa extension, FormPump ay awtomatikong magpasok ng isang nakatagong input na naglalaman ng form na halaga konteksto ng pangalan nito, (para sa Jinja2, itakda ito tungkol sa kapaligiran).
& Nbsp;>>> env.form_name_key = '__'
& Nbsp;>>> tpl = env.from_string ('' '
... {% Form na "halimbawa"%}
... {% Endform%}
... '' ')
& Nbsp;>>>-print tpl.render ()


Maaari pagkatapos ay gamitin ang nagsumite ng halaga upang madaling makilala ang nagsumite ng form sa server.
Ngunit, gamit ang tampok na ito ay magbibigay ng isa pang pagkamagulo! Sabihin ang gusto naming magkaroon ng paulit-ulit sa isang paraan nang maraming beses sa isang solong pahina. Sa bawat pag-uulit ng form, nais naming baguhin ang mga variable na prefilled. Halimbawa, sabihin nating mayroon kang isang listahan ng mga tao mula sa isang kumpanya, at nais mong i-edit at ipadala ang mga update sa numero ng telepono para sa bawat isa. Samakatuwid nais mo ang parehong formname isinumite pabalik sa server, ngunit isang _different form sa konteksto kapag pinupunan ang form. Ipasok ang form_ctx function, na nagbibigay-daan sa iyo upang baguhin ang konteksto kung saan ang hitsura up FormPump mga halaga mula sa mabilisang. Pinapayagan ka rin ng form_ctx pag-andar mong italaga sa mga dynamic na mga pangalan ng konteksto upang ang iyong mga form, kung saan ang karaniwang pag-andar na form ay hindi:
& Nbsp;>>> tpl = env.from_string ('' '
...


    ... {% Para sa tao sa tao%}
    ...

  • ... {% Form na "tao"%}
    ... {% Form_ctx "tao.% D"% tao ['id']%}
    ... {% Nakatagong "id"%}
    ... {% Label na "telepono"%} {{tao ['name']}} {% endlabel%}
    ... {% Tekstong "telepono"%}
    ... {% Endform%}
    ...

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

... '' ')
& Nbsp;>>> tao = [{'id': 1, 'name': 'Bill B.', 'telepono': '555-123-4567'},
... {'Id': 2, 'name': 'Chris C.', 'telepono': '555-7654-321'}]
& Nbsp;>>>-print tpl.render (mga tao = tao,
... Form_vars = dict ([('tao.% D'% tao ['id'], tao) para sa tao sa tao]))

    & Nbsp;

  • & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;

  • & Nbsp;

  • & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;

Kung tumingin ka sa itaas, makikita mo ang dalawang mga form, parehong may parehong pangalan form na ito, subalit may ibang mga halaga napunan salamat sa pabago-bagong form_ctx. Ang form_ctx function na nakakaapekto sa lahat ng mga input na dumating pagkatapos nito. Maaari mong tukuyin ang maramihang mga form_ctx sa isang form kung gusto mo, ang bawat isa pre-empting sa nakaraang. Tandaan gayunpaman na ang kanyang maaaring maging nakakalito stylistically.
Mga error na Form
Mga error sa form na gumana tulad ng form_vars. Gamitin mo ang function na error sa iyong template upang ipahiwatig kung saan ang mga error ay dapat pumunta, at pagkatapos ay tukuyin ang form_error bilang isang Nested diksyunaryo ng mga diksyunaryo na naglalaman ng anuman at lahat ng mga error na mensahe na gusto mong ilagay sa. Anumang error na hindi mahanap ang isang katumbas na halaga sa form_error lookup ay naiwan sa labas ng panghuling output.
>>> Tpl = env.from_string ('' '
... {% Form na "halimbawa"%}
... {% Error na "field_A"%}
... {% Tekstong "field_A"%}
... {% Error na "field_B"%}
... {% Tekstong "field_B"%}
... {% Endform%}
... '' ')
>>>-Print tpl.render (form_vars = {"Halimbawa": {"field_A": "Val A", "field_B": "Val B"}},
... Form_errors = {"Halimbawa": {"field_B": "error B"}})

& Nbsp;
& Nbsp;
error B

& Nbsp;

Tandaan din na ang anumang mga input na mahanap ang isang error ay magkakaroon ng klase "error" css idinagdag sa kanila.
Mga mensahe ng error sa pamamagitan ng default ay ang output tulad ng sa itaas & mdash; sa isang div na may class "error message". Maaari mong tukuyin ang iyong sariling estilo ng error na mensahe sa pamamagitan ng pagtatalaga ng mga function sa diksyunaryo nito error_renderers at pagkatapos ay tukuyin ang taga-render ng katangian sa template: {% error na taga-render = "custom na"%}. . Sa pamamagitan ng default, ang lahat ng mga error gamitin ang "default" na taga-render na ikaw ay malayang upang i-override

Mga Kinakailangan :

  • Python

Iba pang mga software developer ng Dave Mankoff

htmlmin
htmlmin

12 May 15

Mga komento sa FormPump

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!