Plone Konferenz München 2012 YAFOWIL (Yet Another FOrm Widget Library) Webformulare ohne Kopfschmerzen Jens W. Klein <jk@k...
Der Leidensdruck <ul><li>„I feel like a stupid beginner while doing a simple z3cform“
Forms werden doppelt verarbeitet: Validierung und Wertumwandlung
Ich will keine Interfaces und Klassen schreiben müssen um Formulare zu bauen.
Ich will Formulare zur Laufzeit verändern können.
Ich will Formulare in Pyramid und Plone gleich erstellen können. </li></ul>
Designkriterien <ul><li>Form-Widgets sind eine Datenstruktur
Formulare werden deklarativ erstellt.
Formulare sind nicht zwingend Python Code
Validierung und Wertumwandlung sind Eins
Widgets sollen flexibel zusammengebaut werden und einfach funktional erweitert weren können
Nächste SlideShare
Wird geladen in …5
×

YAFOWIL - Webformulare in Python ohne Kopfschmerzen

1.825 Aufrufe

Veröffentlicht am

Veröffentlicht in: Gesundheit & Medizin, Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.825
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
13
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Dank Roland, ich möchte jetzt ein wenig in die Welt der Virtualisierung, der Redundanz und des technischen Webpublishings mit Plone eintauchen. Wenn dies für Sie noch Fremdwörter sind bleiben Sie trotzdem sitzen. Ich versuche behutsam die Begriffe zu erklären.
  • YAFOWIL - Webformulare in Python ohne Kopfschmerzen

    1. 1. Plone Konferenz München 2012 YAFOWIL (Yet Another FOrm Widget Library) Webformulare ohne Kopfschmerzen Jens W. Klein <jk@kleinundpartner.at> 23.02. 2012
    2. 2. Der Leidensdruck <ul><li>„I feel like a stupid beginner while doing a simple z3cform“
    3. 3. Forms werden doppelt verarbeitet: Validierung und Wertumwandlung
    4. 4. Ich will keine Interfaces und Klassen schreiben müssen um Formulare zu bauen.
    5. 5. Ich will Formulare zur Laufzeit verändern können.
    6. 6. Ich will Formulare in Pyramid und Plone gleich erstellen können. </li></ul>
    7. 7. Designkriterien <ul><li>Form-Widgets sind eine Datenstruktur
    8. 8. Formulare werden deklarativ erstellt.
    9. 9. Formulare sind nicht zwingend Python Code
    10. 10. Validierung und Wertumwandlung sind Eins
    11. 11. Widgets sollen flexibel zusammengebaut werden und einfach funktional erweitert weren können
    12. 12. Man muss kein Python Guru sein um Forms erstellen zu können. </li></ul>
    13. 13. from yafowil import factory form = factory('form', name='helloworld', props={'action': url}) form['person'] = factory('#stringfield', props={'label': 'Who?', 'value': '', 'required': True}) form['submit'] = factory('field:submit', props={'label': 'greet', 'action': 'save', 'handler': store , 'next': next })
    14. 14. factory: form name: soundcloudsettings props: action: expr:context.action class: edit-form enableUnloadProtection widgets: - client_id: factory: field:label:error:text value: expr:context.settings.client_id props: label: Client Id required: Client Id needed.
    15. 15. - client_secret: factory: field:label:error:text value: expr:context.settings.client_secret props: label: Client Secret required: Client Secret needed. - save: factory: submit props: action: save expression: True handler: context.save next: context.next label: Save
    16. 16. import yafowil.loader def store (widget, data): with open('storage.txt', 'a') ad f: f.write(data['person']) def next (widget, data): return 'http://some.where.org/nextpage'
    17. 17. from yafowil import Controller controller = Controller(form, request) if not controller.next: return redirect (controller.next) return controller.rendered
    18. 19. Prinzipien <ul><li>Runtime rules, static is subordinate,
    19. 20. Don’t mess with a framework,
    20. 21. Keep it simple and pythonic,
    21. 22. No fights with storage,
    22. 23. Use chains and trees as structures. </li></ul>
    23. 24. Quellen <ul><li>Software-Paket http://pypi.python.org/pypi/yafowil
    24. 25. Dokumentation http://yafowil.info
    25. 26. Beispiel: Plone Custom Search http://plone.org/documentation/kb/build-a-custom-search-form-with-yafowil </li></ul>

    ×