Erfahrungsbericht: Bottle und Flask

Django, Flask, Bottle, WSGI, CGI…
Antworten
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Ist schon etwas älter der werte Thread, wollte dennoch mal aktuellen Senf drauf streichen.
So haderte ich etwas länger um Bottle oder Flask, demnach habe ich kurzerhand ein in Bottle vorhandenes Projekt noch mal mit Flask erstellt.

Mit dem Ergebnis das sich Flask eine feine Sache ist und um es und wie es zu wissen nicht schadet. Doch neben Abhängigkeit, Python 3.x und dann die Entwicklungsgeschmeidigkeit liegt Bottle für mich etwas weiter vorn. Es mag daran liegen das Bottle das erste Web Framework war welches ich mir anschaute. Doch denke ich ein und dasselbe Projekt in beiden Technologien, mir eine über den Geschmack hinaus gehende Beurteilung ermöglicht. Bottle ist in meinen Augen definitiv nicht mehr nur für kleine Projekte zu empfehlen, sondern eignet sich hervorragend auch für etwas größere.
Gut Sessions fehlt halt irgendwie ein wenig... selbst bauen und die flash Funktion ist auch recht nice, selbst bauen... Sind keine all zu großen Themen. So gibt es speziell für Sessions ja auch: http://bottlepy.org/docs/dev/recipes.html
Besonders finde ich die Template Engine von Bottle um einiges angenehmer.


Bei dem Projekt handelt es sich um eine Art Film-Verwaltung mit Ausleihfunktion (incl. Userverwaltung etc.) welche eine Anbindung zu IMDB über OMDB.com besitzt um Film-Infos in die lokale Datenbank zu übertragen, sowie die IMDB Bewertung ab zu rufen...


In der Hoffnung niemanden auf den Nerv zu gehen mit dieser alten Gammele, da mich der Vergleich jedoch reizte wollte ich das mal los werden.

Cheers
Zuletzt geändert von Hyperion am Sonntag 30. Dezember 2012, 20:52, insgesamt 2-mal geändert.
Grund: Abgetrennt von: http://www.python-forum.de/viewtopic.php?f=7&t=23354
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

seishin hat geschrieben: Besonders finde ich die Template Engine von Bottle um einiges angenehmer.
Ohne jetzt einen Flamewar loszutreten: Was genau findest Du denn an Jinja2 schlechter / weniger angenehmer als an der Bottle eigenen Template Engine? Ist das wirklich etwas objektives? Oder eher ein subjektives Empfinden? Ich persönlich bin mit Jinja2 immer super ausgekommen und habe nie einen Grund gesehen, etwas anderes einzusetzen - das gilt übrigens auch für kleinere Bottle-Experimente.

Davon abgesehen, geht Dein Beitrag imho in eine andere Richtung als der Titel deutlich macht. Ich werde den Thread also ab Deinem Beitrag abtrennen, was dann auch weniger nach Leichfledderei aussieht :mrgreen:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Definitiv subjektives empfinden, Jinja2 ist eine wunderbare Sache. Doch die macht dessen was zu erst da wart... und Kleinigkeiten, syntaktischer Firlefanz wie:

Jinja2:

Code: Alles auswählen

<form action="{{ url_for('add_entry') }}" method=post class=add-entry>
Bottle:

Code: Alles auswählen

<form action="/addfoo" method="post">
Jinja2:

Code: Alles auswählen

{% for entry in entries %}
    {{ entry.title }}
  {% endfor %}
Bottle:

Code: Alles auswählen

%for element in entries:
    <li>{{element[0]}}</li>
%end
Dennoch ja, dies habe ich etwas sehr unglücklich im ersten Beitrag formuliert.


Hach, Dank ums Trennen der Threads! :mrgreen:
BlackJack

@seishin: Die beiden Beispielpaare die Du zeigst machen doch aber jeweils nicht das selbe, also eignen sie sich nicht wirklich gut zum Vergleichen, oder‽
lunar

seishin hat geschrieben:Jinja2:

Code: Alles auswählen

<form action="{{ url_for('add_entry') }}" method=post class=add-entry>
Bottle:

Code: Alles auswählen

<form action="/addfoo" method="post">
Dir list klar, dass diese Beispiele unterschiedliche Semantik haben , dass insbesondere dass Bottle-Beispiel nur funktioniert, wenn die Anwendung direkt über die Root-URL zu erreichen ist?
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Besonders finde ich die Template Engine von Bottle um einiges angenehmer.
Die Bottle Template Engine ist sehr einfach zu verstehen, will die eigene Syntax minimal ist und der Rest ja "normaler" Python-Code. Jinja2 ist ungleich komplexer, dafür als Template-Engine auch deutlich leistungsfähiger. Von daher hinkt der Vergleich IMHO so oder so. :-)

Gruß, noisefloor
Antworten