FormPump

Software screenshot:
FormPump
Software detaljer:
Version: 0.1.7
Upload dato: 20 Feb 15
Udvikler: Dave Mankoff
Licens: Gratis
Popularitet: 5

Rating: nan/5 (Total Votes: 0)

FormPump er et Python værktøj, der kan integreres med populære templating motorer, så du kan rent udfylde HTML-formularer.
Den FormPump er en samling af Python skabelon motor extensions skrevet for at gøre HTML-formularer meget nemmere at arbejde med. Det direkte tackler problemerne med at udfylde værdierne i dine input, anvender etiketter til dine input og vise fejlmeddelelser på en hurtig måde. Det gør den ved at indføre et sæt af tags / funktioner i din skabelon, oprette formularer elementer i en intuitiv og naturlig måde, der er hurtig til at tilpasse til eksisterende kode.
På nuværende FormPump understøtter Jinja2.
En indledende [Jinja2] Eksempel
(Eksempler er vist i denne README er vist i Jinja2. Andre templating sprog vil have lignende brug.)
>>> Fra formpump import JinjaPump
>>> Fra jinja2 import Miljø
>>> ENV = Miljø (extensions = [JinjaPump])
>>> TPL = env.from_string ('' '
... {% Form "eksempel" class = "simple-form"%}
... {% Label 'inp'} Indtast en værdi: {% endlabel%}
... {% Tekst "inp"%}
... {% Endform%}
... '' ')
>>> Print tpl.render ()


& Nbsp;
& Nbsp;

& Nbsp;>>> print tpl.render (form_vars = {'eksempel': {"inp«: 123}})

& Nbsp;
& Nbsp;

I ovenstående eksempel, ser vi en simpel skabelon objekt, der oprettes, som indeholder en form. Når gengives uden nogen argumenter, er det simpelthen udskriver formularen med nogen oplysninger udfyldes. Når særlige "form_vars" dict er forudsat, fylder den eventuelle værdier, den kan finde i den form, som den genererer det.
Du kan også mærke til de lange, grimme id attributter, der blev sat. Disse er påkrævet, således at FormPump kan knytte etiketter med input; FormPump gør dem op, som det går. Du er velkommen til at tilsidesætte dem selv ved blot at give din egen id og attributter på dine elementer. FormPump automatisk holder styr på etiketterne og input i skabelonen og forsøger at intelligent knytte dem til hinanden, men kun når de input ikke har id'er angivet, og etiketter har ikke for er angivet.
udfylde formularer
FormPump udfylder formularer ved at se input værdier op i udpegede skabelon variabel. Denne variabel standard til form_vars men kan konfigureres ved at sætte values_dict_name ejendom udvidelse (for Jinja2, indstille dette på miljøet: env.values_dict_name).
form_vars er en ordbog af ordbøger. Top niveau taster er de formular kontekst identifikatorer, forklaret mere detaljeret nedenfor. Hver formular sammenhæng refererer til en anden ordbog, som er et simpelt sæt af nøgleværdipar som FormPump bruger til at slå værdier for formularen. Tasterne henviser til input navn. Værdierne bliver attributværdien * for input, konverteret til Unicode.
* Bemærk: For input som en radio-knap, hvor værdierne er forudbestemt, bruger FormPump den form_vars for at bestemme, hvilken knap radio til forhånd vælge, hvis nogen.
Form Kontekst s
FormPump tillader dig at have mere end én form i din skabelon. Hver formular kan have overlappende input navne. Formerne er flertydig ved hvad FormPump kalder formen sammenhæng. Ovenstående eksempel viser en form sammenhæng sat til "eksempel" - det er strengen umiddelbart efter form nøgleordet. Strengen skal være en konstant streng, ikke en variabel eller anden dynamisk udtryk, (der er en vej uden om dette dækket nedenfor).
Et simpelt eksempel bør afklare deres forbrug:
& Nbsp;>>> TPL = env.from_string ('' '
... {% Form "en"%}
... {% Tekst "inp"%}
... {% Endform%}
... {% Form "b"%}
... {% Tekst "inp"%}
... {% Endform%}
... '' ')
& Nbsp;>>> print tpl.render (form_vars = {'a': {"inp ':' A '},' b ': {" inp': 'B'}})

& Nbsp;


& Nbsp;

Form sammenhænge faktisk tjener et dobbelt formål. En almindelig hindring med at have flere HTML-formularer på en enkelt side, er, at kan være svært at afgøre, hvilken form blev indgivet, hvis begge former har den samme handling attribut. Form sammenhænge kan hjælpe.
Med standardindstillingerne, som vist hidtil, har de ingen direkte indvirkning på produktionen. Men hvis du indstiller form_name_key ejendom på udvidelsen, FormPump vil automatisk indsætte en skjult indgang, der indeholder den formular kontekst værdi som navnet, (for Jinja2, sætte dette på miljøet).
& Nbsp;>>> env.form_name_key = '__'
& Nbsp;>>> TPL = env.from_string ('' '
... {% Form "eksempel"%}
... {% Endform%}
... '' ')
& Nbsp;>>> print tpl.render ()
"<" Value = "eksempel skjulte" name = "__" /

Den indsendte værdi kan derefter anvendes til nemt at identificere den indsendte formular på serveren.
Men ved hjælp af denne funktion bringer endnu en komplikation! Sige at vi vil have en form gentaget flere gange på en enkelt side. Med hver gentagelse af form, vi ønsker at ændre de variabler, der er forfyldt. For eksempel sige, at du har en liste over folk i en virksomhed, og du vil være i stand til at redigere og sende opdateringer til telefonnummeret for hver enkelt. Du ønsker derfor den samme formname forelagt tilbage til serveren, men en _different formular kontekst, når du udfylder formularen. Indtast form_ctx funktion, som giver dig mulighed for at ændre den kontekst, hvor FormPump ser op værdier fra i farten. Den form_ctx funktionen giver dig også mulighed for at tildele dynamiske sammenhæng navne til dine formularer, som den standardformular virker ikke:
& Nbsp;>>> TPL = env.from_string ('' '
...

    ... {% For personer i mennesker%}
    ...

  • ... {% Form "person"%}
    ... {% Form_ctx "person.% D"% person, ['id']%}
    ... {% Skjult "id"%}
    ... {% Label "telefon"%} {{person, ['navn']}} {% endlabel%}
    ... {% Tekst "telefon"%}
    ... {% Endform%}
    ...

  • ... {% EndFor%}
    ...

... '' ')
& Nbsp;>>> folk = [{"id": 1, 'navn': »Bill B. ',' telefon ':" 555-123-4567 "},
... {"Id": 2, 'navn': 'Chris C.', 'telefon': "555-7654-321"}]
& Nbsp;>>> print tpl.render (mennesker = folk,
... Form_vars = dict ([('person.% D'% person, ['id'], person) for personer i mennesker]))

    & Nbsp;

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

  • & Nbsp;

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

Hvis du ser ovenfor, vil du se to former, både med samme form navn, men med forskellige værdier udfyldt takket være den dynamiske form_ctx. Den form_ctx funktion påvirker alle indgange, der kommer efter den. Du kan angive flere form_ctx er i en form, hvis du vil, hver foregribe den forrige. Bemærk dog, at hans kan blive stilistisk forvirrende.
Form Fejl
Form fejl fungerer meget gerne form_vars. Du bruger fejl funktion i din skabelon til at angive, hvor fejl skal gå, og derefter angive form_error som en indlejret ordbog af ordbøger, der indeholder en hvilken som helst og alle fejlmeddelelser du gerne vil sætte i. Enhver fejl, der ikke finder en tilsvarende værdi i form_error opslag vil blive udeladt af det endelige output.
>>> TPL = env.from_string ('' '
... {% Form "eksempel"%}
... {% Fejl "field_A"%}
... {% Tekst "field_A"%}
... {% Fejl "field_B"%}
... {% Tekst "field_B"%}
... {% Endform%}
... '' ')
>>> Print tpl.render (form_vars = {"eksempel": {"field_A": "val A", "field_B": "val B"}},
... Form_errors = {"eksempel": {"field_B": "error B"}})

& Nbsp;
& Nbsp;
fejl B

& Nbsp;

Bemærk også, at eventuelle indgange, der finder en fejl vil have den "fejl" css klasse føjet til dem.
Fejlmeddelelser som standard udsendes ligesom ovenfor & ndash; i en div med class "fejl-meddelelsen". Du kan angive din egen fejlmeddelelse stil ved at tildele funktioner til sin error_renderers ordbog og derefter angive renderer attribut i skabelonen: {% error renderer = "custom"%}. . Som standard alle fejl bruge "default" renderer som du er velkommen til at tilsidesætte

Krav :

  • Python

Andre software developer Dave Mankoff

htmlmin
htmlmin

12 May 15

Kommentarer til FormPump

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!