$30 off During Our Annual Pro Sale. View Details »

Dynamische Webseiten mit Flask und reST

Dynamische Webseiten mit Flask und reST

Der Beitrag stellt an Hand der Applikation, die sich hinter http://pymove3d.pysv.org verbirgt dar, wie leicht ähnliche Webseiten erstellt werden können. Diese Site verwendet: flask, jinja2, bootstrap und reST Textblöcke. Für dieses Projekt haben wir uns entschieden das Textmaterial mit reST zu erstellen um es Übersetzern zu erleichtern Textpassagen als ganzes zu übersetzen. Diese Textpassagen sind dadurch ebenfalls an anderer Stelle leicht weiter zu verwenden.

Reimar Bauer

November 29, 2014
Tweet

More Decks by Reimar Bauer

Other Decks in Programming

Transcript

  1. Mitglied der Helmholtz-Gemeinschaft Dynamische Webseiten mit Flask und reST Flask,

    jinja2, publish_parts 29.11.2014 Reimar Bauer
  2. Kontakt-Informationen: Forschungszentrum Jülich GmbH http://www.fz-juelich.de/ Reimar Bauer, IEK-7 r.bauer@fz-juelich.de rb.proj@gmail.com

    @ReimarBauer dreimark@chat.freenode.net http://moinmo.in/ReimarBauer 29.11.2014 Reimar Bauer Folie 2
  3. Überblick Einführung Aufgabe Ergebnis Zusammenfassung 29.11.2014 Reimar Bauer Folie 3

  4. pymove3D Site Januar 2014: PySV Website Sprint für pymove3D. Ein

    Wochenende in Berlin: Peter Koppatz, Reimar Bauer und Stefania Trabucchi erstellen eine gut anpassbare Site wie sich später herausstellt. pymove3d-app; pymove3d Webseite; 29.11.2014 Reimar Bauer Folie 4
  5. pymove3D design 29.11.2014 Reimar Bauer Folie 5

  6. Aufgabe Mai 2014: Wir brauchen eine Webseite für das ESKP

    - Projekt, für unser Institut. Bilder, Text, Inhalte leicht pflegbar; Markup; Dynamik; Theme Responsive; Lizenz GPL oder ähnlich; Fertigstellung, asap. 2 Tage? 29.11.2014 Reimar Bauer Folie 6
  7. ESKP Seite des IEK-7 eskp-iek7 Fork von pymove3D 29.11.2014 Reimar

    Bauer Folie 7
  8. So ist es aufgebaut flask Awendung pymov3d.py; jinja2 templates; translations

    text, in reST; static css, fonts etc. 29.11.2014 Reimar Bauer Folie 8
  9. pymove3d content Snippet pymove3d Programm import os from d o

    c u t i l s . core import publish_parts from f l a s k import Flask # gets the path where a l l s t u f f i s located PYMOVE3D_PATH = os . path . dirname ( os . path . abspath ( __file__ ) ) app = Flask (__name__) def get_content ( filename , overrides=None) : def get_topmenue ( ) : app . jinja_env . globals . update ( get_topmenue=get_topmenue ) @app. route ( " / " ) def index ( ) : i f __name__ == " __main__ " : app . run ( host= ’ localhost ’ , port =5014, debug=True ) snippet–pymove3d.py 29.11.2014 Reimar Bauer Folie 9
  10. reST Markup Texte sind im Zusammenhang leichter formulierbar und zu

    übersetzen /templates/de/rst /templates/en/rst 29.11.2014 Reimar Bauer Folie 10
  11. reST Inhalte verarbeiten Sphinx kann reST Markup in HTML übersetzen.

    Es verwendet publish_parts aus den docutils. Snippet reST to HTML def get_content ( filename , overrides=None) : filename = os . path . j o i n (PYMOVE3D_PATH, filename ) content = u" " i f os . path . i s f i l e ( filename ) : with codecs . open ( filename , ’ r ’ , ’ utf −8 ’ ) as f : rst_data = f . read ( ) content = publish_parts ( rst_data , writer_name= ’ html ’ , settings_overrides=overrides ) [ ’ html_body ’ ] return content snippet–get_content.py 29.11.2014 Reimar Bauer Folie 11
  12. bootstrap theme template twitter bootstrap ist unter GPL und responsive

    Bootstrap jinja2 theme < !DOCTYPE html> <html lang=" en "><head> < t i t l e >PyMove3D − Der Python Wettbewerb . . . < / t i t l e > <link href=" / s t a t i c / css / bootstrap . css " rel =" stylesheet "> < / head> <body> <div id=" main "> {% block body %}{% endblock %} < / div>< !− − / main − −> < / div> < !− − / wrap − −> {% include " footer . html " %} < / body> < / html> snippet–theme.html 29.11.2014 Reimar Bauer Folie 12
  13. reST ist nicht so leicht zu stylen, aber ... html

    in reST Termine − − − − − − − . . raw : : html <table class=" table table−striped "> < t r > <td>Datum< / td> <td>Ort< / td> <td> A k t i v i t t < / td> < / t r > < / table> Kurse selbst organisieren ========================= snippet–dates.rst 29.11.2014 Reimar Bauer Folie 13
  14. Zusammenfassung reST ist durch sphinx und Wikis schon bekannt Texte

    können leicht editiert werden commit und publish ergeben Versionskontrolle WSGI APP und online 29.11.2014 Reimar Bauer Folie 14
  15. Fragen 29.11.2014 Reimar Bauer Folie 15