FormPump

Screenshot Software:
FormPump
Detalii soft:
Versiune: 0.1.7
Incarca data: 20 Feb 15
Producător: Dave Mankoff
Licenţă: Gratuit
Popularitate: 5

Rating: nan/5 (Total Votes: 0)

FormPump este un instrument Python care se integrează cu motoare templating populare, permițându-vă să completați curat în forme HTML.
FormPump este o colecție de Python extensii de motoare șablon scrise pentru a face forme HTML mult mai ușor de a lucra cu. Acesta abordează direct problemele legate de completarea valori în intrări tale, aplicarea etichetelor de introducere și afișarea mesajelor de eroare într-un mod rapid. Ea face acest lucru prin introducerea unui set de Tag-uri / funcții în șablonul care crea elemente formează într-un mod intuitiv și natural, care este rapid să se adapteze în cod existent.
În prezent, FormPump sprijină Jinja2.
Un introductivă [Jinja2] Exemplul
(Exemple prezentate în acest README sunt prezentate în Jinja2. Alte limbi templating vor avea utilizare similară.)
>>> Din JinjaPump import formpump
>>> Din jinja2 import Mediu
>>> Env = Mediu (extensii = [JinjaPump])
>>> Tpl = env.from_string ('' '
... {Formă% "exemplu" class = "simplu formular"%}
... {% Eticheta "INP '} Introduceți o valoare: {% endlabel%}
... {% Textul "INP"%}
... {% Endform%}
... '' ')
>>> Tpl.render print ()


& Nbsp;
& Nbsp;

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

& Nbsp;
& Nbsp;

În exemplul de mai sus, vom vedea un simplu obiect șablon creat, care conține o formă. Când prestate fără nici un argument, pur și simplu imprimă formularul cu nici o informație completate. În cazul în care "form_vars" speciale este prevăzut dict, se umple orice valori se pot găsi în forma în care acesta le generează.
Se poate observa, de asemenea, lungi id atributele, urât care au fost stabilite. Acestea sunt necesare, astfel încât FormPump se pot asocia etichete cu intrări; FormPump le face după cum merge. Esti liber sa le suprascrie te prin furnizarea pur și simplu propria identitate și pentru atributele pe elementele tale. FormPump ține în mod automat evidența etichetelor și intrările din șablon și încearcă să le asocieze în mod inteligent cu un altul, dar numai atunci când intrările nu au id specificat, iar etichetele nu au de-a specificat.
completarea formularelor
FormPump completează formularele uitandu-te la valorile de intrare în variabila șablon desemnat. Această variabilă implicit la form_vars dar poate fi configurat prin setarea proprietății values_dict_name a extinderii (pentru Jinja2, setați această asupra mediului: env.values_dict_name).
form_vars este un dicționar de dicționare. Tastele de nivel de top sunt identificatorii formă de context, a explicat în detaliu mai jos. Fiecare context formular se referă la un alt dicționar care este un simplu set de perechi cheie-valoare care FormPump utilizează pentru căutare valorile pentru forma. Cheile se referă la numele de intrare. Valorile sunt devin atributul valoare * pentru intrare, convertit la unicode.
* Notă: Pentru intrări, cum ar fi un buton radio, în cazul în care valorile sunt predeterminate, FormPump utilizează valoarea form_vars pentru a determina care buton radio pentru preselectarea, dacă este cazul.
Context lui Formă
FormPump vă permite să aveți mai mult de o formă în șablon. Fiecare formular poate avea nume de intrare se suprapun. Formele sunt diferentiate prin ceea ce FormPump numește contextul formular. Exemplul de mai sus arată un context formular setat la "exemplu" - este șirul imediat următor formă cuvântul cheie. Șirul trebuie să fie un șir constant, nu o expresie dinamică variabilă sau alte, (există o cale în jurul acestei acoperit de mai jos).
Un exemplu simplu ar trebui să clarifice utilizare a acestora:
& Nbsp;>>> tpl = env.from_string ('' '
... {Formă% "o"%}
... {% Textul "INP"%}
... {% Endform%}
... {Formă% "b"%}
... {% Textul "INP"%}
... {% Endform%}
... '' ')
& Nbsp;>>> tpl.render imprimare (form_vars = {'a': {"INP": "A"}, 'b': {"INP ':' B '}})

& Nbsp;


& Nbsp;

Contexte Formă servi de fapt un scop dublu. Un obstacol comun cu care au mai multe forme HTML pe o singură pagină este faptul că poate fi dificil să se determine ce formă a fost depusă dacă ambele forme au aceeași atribut acțiune. Contexte Formă poate ajuta.
Cu setările implicite, așa cum se arată până acum, nu au nici un efect direct asupra producției. Cu toate acestea, dacă setați proprietatea form_name_key privind extinderea, FormPump va insera automat o intrare ascunsă care conține valoarea formă context ca numele său, (pentru Jinja2, setați această asupra mediului).
& Nbsp;>>> env.form_name_key = '__'
& Nbsp;>>> tpl = env.from_string ('' '
... {Formă% "exemplu"%}
... {% Endform%}
... '' ')
& Nbsp;>>> tpl.render print ()


Valoarea prezentată poate fi apoi utilizat pentru a identifica ușor forma prezentată pe server.
Dar, folosind această funcție aduce mai mult de o complicație! Spune vrem să avem o formă repetată de mai multe ori pe o singură pagină. Cu fiecare repetare a formularului, vrem să schimbăm variabilele care sunt preumplute. De exemplu, să presupunem că aveți o listă de oameni într-o companie, și doriți să fie în măsură să editați și să prezinte actualizări numărul de telefon pentru fiecare dintre ele. De aceea vrem același formname prezentat înapoi la server, dar o formă context _different când completarea formularului. Introduceți funcția form_ctx, care vă permite să schimbați contextul în care FormPump se uită în sus valorile de pe zbor. Funcția form_ctx asemenea, vă permite să atribuiți nume context dinamic pentru formularele, care funcția formular standard nu:
& Nbsp;>>> tpl = env.from_string ('' '
...

    ... {% Pentru persoană în oameni%}
    ...

  • ... {Formă% "persoană"%}
    ... {% Form_ctx "persoană.% D"% persoană ['id']%}
    ... {% Ascuns "id"%}
    ... {% Etichetă "telefon"%} {{persoană ['name']}} {% endlabel%}
    ... {% Textul "telefon"%}
    ... {% Endform%}
    ...

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

... '' ')
& Nbsp;>>> persoane = [{'id': 1, "Numele": "Bill B.", "telefon": "555-123-4567"},
... {"Id": 2, "nume": "Chris C.", "telefon": "555-7654-321"}]
& Nbsp;>>> tpl.render imprimare (persoane = oameni,
... Form_vars = dict ([("persoană.% D '% persoană [' id '], persoana) pentru persoana în oameni]))

    & Nbsp;

  • & Nbsp;

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

    & Nbsp;

  • & Nbsp;

  • & Nbsp;

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

    & Nbsp;

Dacă te uiți mai sus, veți vedea două forme, ambele cu același nume formă, dar cu valori diferite completate datorită dinamic form_ctx. Funcția form_ctx afectează toate intrările care vin după el. Puteți specifica mai multe despre form_ctx într-o formă, dacă doriți, fiecare a prejudicia anterior. Rețineți, totuși, că lui ar putea deveni stilistic confuz.
Erori de Formă
Erori Formă lucra la fel ca form_vars. Puteți utiliza funcția de eroare în șablonul dumneavoastră pentru a indica unde erorile ar trebui să meargă, și apoi specificați form_error ca un dicționar imbricate de dicționare care conțin oricare și toate mesajele de eroare pe care doriți să pună în. Orice eroare care nu găsește o valoare corespunzătoare din căutare form_error va fi lăsat în afara rezultatului final.
>>> Tpl = env.from_string ('' '
... {Formă% "exemplu"%}
... {% Eroare "field_A"%}
... {% Textul "field_A"%}
... {% Eroare "field_B"%}
... {% Textul "field_B"%}
... {% Endform%}
... '' ')
>>> Tpl.render imprimare (form_vars = {"exemplu": {"field_A": "val A", "field_B": "val B"}},
... Form_errors = {"exemplu": {"field_B": "Eroare B"}})

& Nbsp;
& Nbsp;
Eroare B

& Nbsp;

Rețineți, de asemenea că orice intrări care găsiți o eroare va avea clasa "eroare" CSS adăugat la ele.
Mesajele de eroare, în mod implicit sunt scoase ca mai sus & mdash; într-un div cu clasa "eroare-mesajul". Puteți specifica propriu mesaj de eroare stilul dvs. de atribuirea funcțiilor pentru dicționar de error_renderers și apoi specificarea atributul de redare în modelul: {% eroare de redare = "custom"%}. . În mod implicit, toate erorile folosi "default", de redare pe care ești liber să suprascrie

Cerințe :

  • Python

Alte software-uri de dezvoltator Dave Mankoff

htmlmin
htmlmin

12 May 15

Comentarii la FormPump

Comentariile nu a fost găsit
Adauga comentarii
Porniţi pe imagini!