Slide 1

Slide 1 text

Mitglied der Helmholtz-Gemeinschaft Dynamische Webseiten mit Flask und reST Flask, jinja2, publish_parts 29.11.2014 Reimar Bauer

Slide 2

Slide 2 text

Kontakt-Informationen: Forschungszentrum Jülich GmbH http://www.fz-juelich.de/ Reimar Bauer, IEK-7 [email protected] [email protected] @ReimarBauer [email protected] http://moinmo.in/ReimarBauer 29.11.2014 Reimar Bauer Folie 2

Slide 3

Slide 3 text

Überblick Einführung Aufgabe Ergebnis Zusammenfassung 29.11.2014 Reimar Bauer Folie 3

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

pymove3D design 29.11.2014 Reimar Bauer Folie 5

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

ESKP Seite des IEK-7 eskp-iek7 Fork von pymove3D 29.11.2014 Reimar Bauer Folie 7

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

reST Markup Texte sind im Zusammenhang leichter formulierbar und zu übersetzen /templates/de/rst /templates/en/rst 29.11.2014 Reimar Bauer Folie 10

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

bootstrap theme template twitter bootstrap ist unter GPL und responsive Bootstrap jinja2 theme < !DOCTYPE html> < t i t l e >PyMove3D − Der Python Wettbewerb . . . < / t i t l e > < / head>
{% block body %}{% endblock %} < / div>< !− − / main − −> < / div> < !− − / wrap − −> {% include " footer . html " %} < / body> < / html> snippet–theme.html 29.11.2014 Reimar Bauer Folie 12

Slide 13

Slide 13 text

reST ist nicht so leicht zu stylen, aber ... html in reST Termine − − − − − − − . . raw : : html < t r > Datum< / td> Ort< / 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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

Fragen 29.11.2014 Reimar Bauer Folie 15