18.10.2013 Aufrufe

PDF-Version - freiesMagazin

PDF-Version - freiesMagazin

PDF-Version - freiesMagazin

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Weitere Funktionen<br />

Fungiform bietet natürlich noch weitere Möglichkeiten<br />

als die hier gezeigten. So ist es z. B. auch<br />

möglich, eigene Feldtypen zu definieren, Feldern<br />

„Widgets“ mitzugeben, um deren Verhalten zu ändern<br />

usw. Dies ist auch in der eingebauten Dokumentation<br />

(kurz) erklärt.<br />

Eingangs wurde bereits erwähnt, dass auch<br />

Fungiform alle gängigen Feldtypen generieren<br />

kann sowie ein paar „Extrafelder“ an Bord hat.<br />

Des Weiteren unterstützt Fungiform den Einsatz<br />

von Recaptchas [22] und bietet mit Bordmitteln<br />

Schutz vor Cross-Site-Request-Forgery [23].<br />

Aufgrund der fehlenden Dokumentation müssen<br />

auch hier der Quelltext beziehungsweise die<br />

Kommentare darin gelesen werden, um herauszufinden,<br />

wie diese Funktionen zu nutzen sind.<br />

Flatland<br />

Flatland trägt ebenso wie Fungiform eine recht<br />

niedrige <strong>Version</strong>snummer, nämlich 0.0.1, und<br />

wird auf PyPi [24] mit dem Status „beta“ deklariert.<br />

Laut Homepage des Projekts [25] ist das<br />

Framework komplett, frei von größeren Bugs, einsatzfähig<br />

und auch tatsächlich im Einsatz. Bei<br />

den Tests mit Flatland für diesen Artikel traten in<br />

der Tat keine Probleme auf – aber es fehlt noch<br />

Dokumentation [26]. Dies ist aktuell in der Tat das<br />

größte Manko von Flatland. Es gibt zwar eine<br />

schon recht umfangreiche Dokumentation [27],<br />

diese beschreibt aber fast ausschließlich das Anlegen<br />

von eigenen Klassen und den Einsatz der<br />

# -*- coding: utf -8 -*-<br />

from flatland import Form , String , Date<br />

from flatland.validation import Present , ValueIn , IsEmail , \<br />

ValuesEqual , IsEmail<br />

GENDER_DATA = [u'männlich',u'weiblich']<br />

def not_allowed_name(element , state):<br />

if element.value in ['admin','superuser']:<br />

element.errors.append(u'Verbotener Name')<br />

return False<br />

PROGRAMMIERUNG<br />

class UserData(Form):<br />

name = String.using(label = u'Name',<br />

validators=[Present(missing=u'Kein Name eingegeben'),<br />

not_allowed_name])<br />

birthday = Date.using(label = u'Geburtsdatum',optional = True)<br />

gender = String.using(label = u'Geschlecht',<br />

validators=[Present(missing=u'Geschlechtsangabe fehlt'),<br />

ValueIn(GENDER_DATA ,fail =<br />

u'"%(value)s" ist ungültiger Wert für %(label)s.')])<br />

class LoginForm(Form):<br />

email = String.using(label='E-Mail',<br />

validators=[<br />

Present(missing=u'Kein E-Mail Adresse eingegeben'),<br />

IsEmail(invalid=u'Keine gültige E-Mail Adresse')])<br />

pass1 = String.using(label = u'Passwort',<br />

validators=[Present(missing = 'Kein Passwort eingegeben')])<br />

pass2 = String.using(label = u'Passwort Wiederholung',<br />

validators=[Present(missing = 'Passwortwiederholung fehlt')])<br />

validators = [<br />

ValuesEqual(pass1 ,pass2)]<br />

Listing 5: flatland_forms.py<br />

© <strong>freiesMagazin</strong> CC-BY-SA 3.0 Ausgabe 12/2011 22

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!