Framework für eigene Blog !

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
Manchotix
User
Beiträge: 54
Registriert: Samstag 14. Januar 2012, 19:54

Hey Community,

ich habe mir lange ein Tutorial Buch gelesen zu Python 2.x und wollte gern anfangen ein Projekt zu machen, um einfach ein wenig zu üben.
Daher ist meine Frage was für mein Projekt am besten ist.

Denn ich habe mir gedacht das ich mir einen eigene Webseite baue, mit einen Blog bereich, einen Video/Podcast bereich und geg. ein Paar Downloads halt das alles was einen Webseite so zu bieten hat.

Nur ist jetzt meine Frage was für ein Web-Framework ich dafür gut nutzen kann.

Also wenn man sich nach Python Informiert findet sich schnell Django aber habe auch bottle gefunden was zwar sehr klein ist aber grund Funktionen bietet.

Würde mich freuen wenn mir da jemand helfen kann, auch wo und wann welches Framework angebracht ist.

Hoffe ich habe meine Frage halbwegs gut gestellt.

mfg Manchotix
- Über Fehler sollte man sich freuen als über das richtige Ergebnis denn wir Menschen können nur aus den Fehlern lernen-
deets

Benutz Django. Bottle ist fein (und Flask und wie sie alle heissen) aber mehr was fuer Leute die wissen, was sie tun. Anfaenger fahren besser mit Django, da kannst du ein Blog zB einfach einbinden.
Benutzeravatar
noisefloor
User
Beiträge: 4179
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

Antwort: kommt drauf an :-)

Django ist halt eine All-in-One Lösung, welche dir auch direkt ein ORM, Templates, Form-Framework usw. anbietet, außerdem gibt es für Django haufenweise Erweiterungen.

Bottle (oder auch Flask) sind kleinere Frameworks, welche die schnell und einfach das Routing und Request / Response Handling zur Verfügung stellen. Den "Rest" kannst du dann nach eigenem Bedarf ergänzen. Bottle hat mit SimpleTemplate zusätzlich noch eine kleine aber feine Template-Engine.

Ich selber nutzte z.B. Bottle in Kombination mit WTForms und SQLAlchemy.

Gruß, noisefloor
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Vor-/Nachteile von minimales-/Batteries Included-Frameworks:
http://wiki.python.de/Web-Frameworks#We ... w-r_wen.3F

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Manchotix
User
Beiträge: 54
Registriert: Samstag 14. Januar 2012, 19:54

Ok danke für die schnelle Antwort,

Ich denke ich werde mich mit Bottle beschäftigen weil ich auch dadurch mehr aus eigener Feder schreiben muss und so kann ich meine Fertigkeiten besser stärken.

danke nochmal :D

mfg Manchotix
- Über Fehler sollte man sich freuen als über das richtige Ergebnis denn wir Menschen können nur aus den Fehlern lernen-
deets

Ich denke das solltest du *nicht* tun. Aber das sagte ich ja schon.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich halte das auch für einen Fehler. Meine Empfehlung wäre Django. Man hat immer noch sehr viel zu tun, auch wenn Django alles bietet, was man als Basis braucht.
Der Vorteil: Erstmal braucht man nur Django und hat nur eine Dokumentation zu lesen.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
noisefloor
User
Beiträge: 4179
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Manchotix hat geschrieben:Ich denke ich werde mich mit Bottle beschäftigen weil ich auch dadurch mehr aus eigener Feder schreiben muss und so kann ich meine Fertigkeiten besser stärken.
Hm... Bibliotheken & Frameworks sind dazu da, um genutzt zu werden. Das Rand neu erfinden ist eigentlich nie Sinn der Sache. Abgsehen davon: Wenn du Django nimmst verbesserst du auch deine Fähigkeiten - und Code musst du mit Django auch schreiben. Es ist ja schließlich kein Click & Go System.

BTW: Der Grund, warum ich Bottle + ... verwende ist _nicht_, weil ich Django schlecht finde, sondern weil die Anforderungen und Wünsche mit der Zeit gewachsen sind. Zuerst hatte ich auch "nur" Bottle + HTML-Templates + eine simple DB-Anbindung. WTForms und SQLAlchemy sind erst später dazu gekommen. Und da war die Applikation schon so weit, dass ich nicht mehr auf Django portieren wollte.
Wenn also von vorneherein klar gewesen wäre, wäre ich heute vielleicht auch bei Django :-)

Gruß, noisefloor
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Manchotix hat geschrieben:Ich denke ich werde mich mit Bottle beschäftigen weil ich auch dadurch mehr aus eigener Feder schreiben muss und so kann ich meine Fertigkeiten besser stärken.
Warum dann überhaupt ein Framework? Dann kannst du auch gleich Werkzeug oder direkt WSGI nutzen. Hoffentlich sagen dir die Begriffe SQL-Injection, CSRF, XSS, signed Cookies etc. irgendwas, weil sonst ist deine Webapp angreifbar.

Mit anderen Worten: Nutze erstmal Django. Lerne wozu die jeweiligen Komponenten sind. Danach kannst du noch schauen, ob du es normal alles neu erfinden willst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

noisefloor hat geschrieben:BTW: Der Grund, warum ich Bottle + ... verwende ist _nicht_, weil ich Django schlecht finde, sondern weil die Anforderungen und Wünsche mit der Zeit gewachsen sind. Zuerst hatte ich auch "nur" Bottle + HTML-Templates + eine simple DB-Anbindung. WTForms und SQLAlchemy sind erst später dazu gekommen. Und da war die Applikation schon so weit, dass ich nicht mehr auf Django portieren wollte.
Wenn also von vorneherein klar gewesen wäre, wäre ich heute vielleicht auch bei Django :-)
Und das ist das Problem. Am Anfang denkt man immer, was kleines reicht. Später will man aber noch dieses und jenes, also dann eine Lösung für X, später was für Y dazu nehmen... und schon hat man alles zusammen, was Django von vornherein bietet...
So erging es mir auch: http://www.pylucid.org/permalink/30/ent ... #Die-Story

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Gut, Geschichten die in die andere Richtung gehen gibt es auch, von daher ist da die Aussagekraft nur begrenzt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Ich nutze Flask und mir war von vornherein klar, dass ich auch ein ORM (SqlAlchemy), WTForms brauche/will und mit Flask hat man sowieso noch die Abhängigkeiten von Jinja2 und Werkzeug. Allerdings hat mir einfach die Kombination von den verschiedenen Librarys mehr zugesagt als Django, mir sagt z.B. SqlAlchemy mehr zu als das ORM von Django. Dass man mit Flask große Applikationen schreiben kann beweist MoinMoin. Ich finde man sollte das nehmen, was einem persönlich mehr zusagt.
the more they change the more they stay the same
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dav1d hat geschrieben:Ich finde man sollte das nehmen, was einem persönlich mehr zusagt.
Ja, aber als Anfänger kannst Du ja nicht alles überblicken! Als Erstklässler musst Du Dich auch noch nicht auf Deine Leistungskurse festlegen ;-)

Ich denke Flask oder Bottle sind für simple, ggf. nur lokale Einstiegs- / Testprojekte gut geeignet. Damit hat man einen schnellen Einstieg in grundlegenden Abläufe und Technologien der Webentwicklung unter Python. Vorteil ist imho, dass man nicht so viel Scaffolding und Boilerplate zu Beginn hat, eine "Flask" "Hello World"-App ist doch schnell erstellt. Ein wenig Rumspielen mit Parametern, Routing und Templating geht dann auch noch locker. Aber wenn es dann "ernst" werden soll, würde ich auch zunächst auf Django setzen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dav1d hat geschrieben:Ich nutze Flask und mir war von vornherein klar, dass ich auch ein ORM (SqlAlchemy), WTForms brauche/will
Ok und stopp! Ist jedem Einsteiger klar dass er ein ORM will? Wenn man von PHP kommt, dann kanns auch sein dass man denkt das SQL verketten das ist was man haben will, oder wenn man von Desktopapps kommt dass man da einfach Daten in Dateien abspeichert. Der große Vorteil von Django ist ja, dass es in die State-of-te-Art-Webprogrammierung (zumindest unter Python) einführt. Da wird dem Anfänger gar nicht so viel Möglichkeiten gelassen verloren zu gehen. Als Anfänger kann das ganze Webprogrammierungsding ja durchaus ein ziemliches Monster sein, mit Sachen wie HTTP, Cookies, HTML, CSS (Sass/LESS), JavaScript (CoffeeScript), SQL, ORMs, SQL-Injections, XSS, CSRF, Sessions, Browserkompatibilität, da ist es meiner Meinung nach gut wenn man am Anfang an die Hand genommen wird und gesagt wird "du machst das jetzt so", so dass man sich nicht in Tausend Nischen verzettelt wärend man mit Werkzeug, Glasshammer, Cheetah irgendwas zusammenschustert wo man der einzige User weltweit ist.

Natürlich, wenn man da nen Überblick hat, dann spricht nichts dagegen und ist sicherlich auch gut zu schauen was man für Anforderungen hat und wie man diese am besten abdeckt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
noisefloor
User
Beiträge: 4179
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

was ich vergaß zu sagen: "meine" Applikation laufen in einem _Intra_net mit sehr überschaubarer und persönlich bekannter Benutzergruppe. Von daher brauchte ich mir über SQL-Injection, CSRF, XSS usw. wenig Gedanken machen.

Wenn eine Web-Applikation öffentlich ist, ist es, wie Leonidas schon sagte, natürlich sehr angenehm, wenn das Framework da bereits Mittel und Wege implementiert hat, da sowas unterbinden.

Gruß, noisefloor
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

noisefloor hat geschrieben:was ich vergaß zu sagen: "meine" Applikation laufen in einem _Intra_net mit sehr überschaubarer und persönlich bekannter Benutzergruppe. Von daher brauchte ich mir über SQL-Injection, CSRF, XSS usw. wenig Gedanken machen.
Bis halt die Firewall spinnt und euer Intranet zum Extranet wird. Generell ist so eine Aussage gefährlich. Ursprünglich wurde das Internet auch nur für bekannte Benutzergruppen gedacht, und daher haben wir auch so "tolle" Protokolle wie SMTP ("let's just forward any spam from anybody"), FTP ("unencrypted auth? awesome!"), DNS ("well, how about I serve you my own set of IPs instead of your bank's?"), IRC ("auth? we can do that with a bot!"), telnet ("encrypting is just a waste of time") etc. etc. Generell sollte man immer Sicherheit im Kopf haben, weil ein unsicheres System sicher zu machen ist schwer bis unmöglich ohne viel zu verändern.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
noisefloor
User
Beiträge: 4179
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Leonidas hat geschrieben:Bis halt die Firewall spinnt und euer Intranet zum Extranet wird.
Das ist dann aber nicht mehr mein Problem, sondern das der Admins - zu denen gehöre ich nicht. ;-)
Leonidas hat geschrieben:Generell sollte man immer Sicherheit im Kopf haben, weil ein unsicheres System sicher zu machen ist schwer bis unmöglich ohne viel zu verändern.
Natürlich. Es ist auch nicht so, dass ich den schlampigsten Code on Earth geschrieben habe. Aber, zugegebener Maßen, habe ich bestimmte Angriffszenarien marginaler betrachtet, als wenn es eine öffentlich zugängliche Applikation gewesen wäre.

Gruß, noisefloor
Antworten