Hallo,
da ich überlege ein kleine Verwaltung zu bauen, der vorhandene Webspace aber nur
CGI bietet (kein FastCgi, kein mod_python und auch kein WSGI) stellt sich mir die Frage,
welche Webframeworks dafür gängig wären.
Das ganze ist eine Vereinsverwaltung, die mehr oder weniger sich um die datenbank-daten zentriert.
Wahrscheinlich wäre Turbogears passend, aber ich konnte nichts finden ob das irgendwo nur mit CGI auskommt.
Davon abgesehen, habe ich praktisch keine übung mit python webframeworks.
Was könnt ihr empfehlen?
Danke
Welche Webframeworks lassen sich mit CGI nutzen?
Heyho,
soweit mir bekannt ist gibt es kein gutes oder weit verbreitetes Webframework was auf cgi setzt, die meisten verwenden halt Wsgi(bottle, Flask......), weil man auch kein Framework für Cgi braucht.
Von daher würde ich sagen das du dir die Cgi Scripts selber schreibst oder einen anderen anbieter(vielleicht für kleines geld auch einen V-Server) wählst, aber auch über Cgi kannst du dir ein Datenbank Backend schreiben.
Turbogears ist auch Wsgi !
soweit mir bekannt ist gibt es kein gutes oder weit verbreitetes Webframework was auf cgi setzt, die meisten verwenden halt Wsgi(bottle, Flask......), weil man auch kein Framework für Cgi braucht.
Von daher würde ich sagen das du dir die Cgi Scripts selber schreibst oder einen anderen anbieter(vielleicht für kleines geld auch einen V-Server) wählst, aber auch über Cgi kannst du dir ein Datenbank Backend schreiben.
Turbogears ist auch Wsgi !
- Über Fehler sollte man sich freuen als über das richtige Ergebnis denn wir Menschen können nur aus den Fehlern lernen-
WSGI und CGI sind kompatibel, du brauchst nur einen Wrapper um die Anwendung über CGI aufzurufen wie z.B. wsgiref.handlers.CGIHandler
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Django kann man auch mit CGI fahren. Empfehlenswert ist CGI aber generell nicht. Beim debugging kann es hilfreich sein, aber produktiv einsetzten ist halt relativ langsam.
Im Grunde reicht das folgende fast aus:
Ich würde empfehlen einen anderen Webspache zu suchen. z.Z. nutzte ich http://uberspace.de/
Im Grunde reicht das folgende fast aus:
Code: Alles auswählen
from wsgiref.handlers import CGIHandler
from django.core.handlers.wsgi import WSGIHandler
CGIHandler().run(WSGIHandler())
Den Eindruck habe ich auch. Entweder man nimmt das Monster (Django), das Monster aus einem schlechten B-Movie (TurboGears) oder ein kleines knuddeliges Etwas (z.B. Bottle). Dazwischen gibt es irgendwie nichts - aber mal ernsthaft gefragt: Warum sollte es da auch etwas geben?jens hat geschrieben:Bin jetzt nicht so auf dem Laufenden. Aber ich habe das Gefühl das es neben Django nur noch die kleinen "du suchst dir alles zusammen" Frameworks gibt.
OK, also das ganze ist jetzt schon unüberschaubar genug 
Klingt schwer als wenn aus aktualitätsgründen alles auf Django zeigt?
Was würdet ihr für eine Vereinsverwaltung (mit sehr speziellen logiken teilweise) empfehlen?
Das ganze ist im Prinzip eine Mitgliedereingabe, bezahlt-status eingabe und statistik auswertung (wer wie oft da etc).
Perspektivisch soll aber später eine User-Verwaltung hinzukommen mit applikations-rollen.
Es soll möglichst schnell implementierbar sein und nicht Monatelange Framework-einarbeitung erfordern.
Ich habe auch keine Erfahrung mit Python Web-Frameworks.
In der OpenShift cloud wäre meiner Meinung nach eine geeignete Hosting-möglichkeit, da vorerst gratis.
Als Datenbank schwebt mir entweder MongoDB oder MySQL vor.
Mir ist durchaus bewusst das die Empfehlungen jetzt gewaltig auseinander gehen werden, daher bitte
noch eine kurze Begründung warum.
Danke

Klingt schwer als wenn aus aktualitätsgründen alles auf Django zeigt?

Was würdet ihr für eine Vereinsverwaltung (mit sehr speziellen logiken teilweise) empfehlen?
Das ganze ist im Prinzip eine Mitgliedereingabe, bezahlt-status eingabe und statistik auswertung (wer wie oft da etc).
Perspektivisch soll aber später eine User-Verwaltung hinzukommen mit applikations-rollen.
Es soll möglichst schnell implementierbar sein und nicht Monatelange Framework-einarbeitung erfordern.
Ich habe auch keine Erfahrung mit Python Web-Frameworks.
In der OpenShift cloud wäre meiner Meinung nach eine geeignete Hosting-möglichkeit, da vorerst gratis.
Als Datenbank schwebt mir entweder MongoDB oder MySQL vor.
Mir ist durchaus bewusst das die Empfehlungen jetzt gewaltig auseinander gehen werden, daher bitte
noch eine kurze Begründung warum.
Danke
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Das beißt sich ein wenig... gerade wenn Du noch keine Erfahrung hast, empfiehlt sich eigentlich Django, gerade *weil* es Dir so ziemlich alles abnimmt, was Du bei einem Microframework separat zusammenstellen musst. Wenn Du obendrein noch keine große Erfahrung allgemein in Sachen Web-Programmierung / Technologien hast und dazu noch ein Python Anfänger bist, kann es schnell sein, dass Du Dich an dem Projekt übernimmst.Mad-Marty hat geschrieben: Es soll möglichst schnell implementierbar sein und nicht Monatelange Framework-einarbeitung erfordern.
Ich habe auch keine Erfahrung mit Python Web-Frameworks.
Einarbeiten musst Du Dich so oder so - bei Django erscheint der Umfang zunächst größer, weil da eben Dinge wie ORM, Formular-Lib, Authentifizierung und Autorisierung, usw. dabei sind - bei Microwebframeworks a la Flask oder Bottle musst Du Dir hingegen noch viel mehr Mühe machen, Dir Libs dafür selber heraus zu suchen und in Deine Toolchain einzubauen. Bei Django ist das eben aus einem Guss.
Sollte der produktive Einsatz eher nebensächlich sein, dann ist ein Projekt, das einen motiviert natürlich Gold wert als Hilfe zum Einstieg in eine Sprache.
Wenn der Produktiveinsatz wichtig ist: Kennst Du JVerein? Wenn nein, schau Dir das mal an... ich hatte vor zwei drei Jahren mal in meinem Heimatverein einführen wollen für die Verwaltung.
Ich gebe bei einem Produktiveinsatz noch folgendes zu bedenken: Wenn bei einem Webprojekt Personendaten eine Rolle spielen, so wiegt jede Sicherheitslücke schwerer als bei anderen Webprojekten. In diesem Falle wäre es ggf. ratsam, das ganze nur lokal ablaufen zu lassen - selbst wenn man die GUI als Webinterface gestaltet.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Hyperion hat geschrieben:Das beißt sich ein wenig... gerade wenn Du noch keine Erfahrung hast, empfiehlt sich eigentlich Django, gerade *weil* es Dir so ziemlich alles abnimmt, was Du bei einem Microframework separat zusammenstellen musst. Wenn Du obendrein noch keine große Erfahrung allgemein in Sachen Web-Programmierung / Technologien hast und dazu noch ein Python Anfänger bist, kann es schnell sein, dass Du Dich an dem Projekt übernimmst.Mad-Marty hat geschrieben: Es soll möglichst schnell implementierbar sein und nicht Monatelange Framework-einarbeitung erfordern.
Ich habe auch keine Erfahrung mit Python Web-Frameworks.
Einarbeiten musst Du Dich so oder so - bei Django erscheint der Umfang zunächst größer, weil da eben Dinge wie ORM, Formular-Lib, Authentifizierung und Autorisierung, usw. dabei sind - bei Microwebframeworks a la Flask oder Bottle musst Du Dir hingegen noch viel mehr Mühe machen, Dir Libs dafür selber heraus zu suchen und in Deine Toolchain einzubauen. Bei Django ist das eben aus einem Guss.
Sollte der produktive Einsatz eher nebensächlich sein, dann ist ein Projekt, das einen motiviert natürlich Gold wert als Hilfe zum Einstieg in eine Sprache.
Wenn der Produktiveinsatz wichtig ist: Kennst Du JVerein? Wenn nein, schau Dir das mal an... ich hatte vor zwei drei Jahren mal in meinem Heimatverein einführen wollen für die Verwaltung.
Ich gebe bei einem Produktiveinsatz noch folgendes zu bedenken: Wenn bei einem Webprojekt Personendaten eine Rolle spielen, so wiegt jede Sicherheitslücke schwerer als bei anderen Webprojekten. In diesem Falle wäre es ggf. ratsam, das ganze nur lokal ablaufen zu lassen - selbst wenn man die GUI als Webinterface gestaltet.
Es mangelt nur an der Webframework-Erfahrung in Python, da ich das nie mit Python versucht habe.
GWT oder Portlet ist mir allerdings zu heavy für das umfeld, weil man eben keinen ApplicationServer fürn appel und n ei bekommt.
(Ausserdem wollt ich das schon immer mal mit Python-Webanwendungen probieren!)
Was ist eigentlich mit Zope?
Und ja, prinzipiell ist ja bei einem Framework die Sicherheitsthematik relativ gut abgedeckt, da diverse Vorgaben und Beispiele existieren.
Den Link schau ich mir gleich mal an!
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wie ich schon schrieb sind solche Vorhaben natürlich ein Quell der Motivation und alleine dadurch in sich wertvollMad-Marty hat geschrieben:(Ausserdem wollt ich das schon immer mal mit Python-Webanwendungen probieren!)

Da fällt mir der alte Werbespruch ein "Wer ist eigentlich Paul?"Mad-Marty hat geschrieben: Was ist eigentlich mit Zope?


Öh... naja, das kann man eigentlich *nicht* verallgemeinern. Bei Flask hindert Dich z.B. niemand daran, SQL-Injection zuzulassen... bei Django wird es alleine dadurch schwieriger einen solchen Fehler zu begehen, da Du ohne Mühe nicht am internen ORM vorbei kommstMad-Marty hat geschrieben: Und ja, prinzipiell ist ja bei einem Framework die Sicherheitsthematik relativ gut abgedeckt, da diverse Vorgaben und Beispiele existieren.

encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Dann würde ich zu Django raten, weil alles aus einer Hand: Sehr gute und umfassende Dokumentation. Außerdem entfällt dann schon mal die Evaluierungen, die man bei den kleinen Frameworks machen muß, beim zusammensuchen der Teilkomponenten. Wie z.B. welches ORM nehme ich denn jetzt? Siehe auch http://wiki.python-forum.de/Web-Framewo ... w-r_wen.3FMad-Marty hat geschrieben:Es mangelt nur an der Webframework-Erfahrung in Python, da ich das nie mit Python versucht habe.
Einfach mal das Django Tutorial durcharbeiten und dann weiter sehen...
Ich denke aber mal eben so eine Vereinslösung bauen is nicht. Es sei denn du hast mal eben ein paar Wochen nichts anderes zu tun.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Gegenfrage: Warum möchtest du gern eine schema-freie-Datenbank nutzten?
Die erste Wahl wäre wohl PostgreSQL und MySQL, siehe auch: https://docs.djangoproject.com/en/1.5/ref/databases/
Die erste Wahl wäre wohl PostgreSQL und MySQL, siehe auch: https://docs.djangoproject.com/en/1.5/ref/databases/
>>Gegenfrage: Warum möchtest du gern eine schema-freie-Datenbank nutzten?
weil ich das mal probieren wollte, und die möglichkeit zusätzliche attribute anzulegen ohne großes
Datenbankmigrieren interessant finde.
Insbesondere, weil es ja durchaus schnell nötig werden kann zusätzliche attribute zu speichern.
Allerdings nimmt South einem wohl recht viel vom Schemaumbau ab ...
weil ich das mal probieren wollte, und die möglichkeit zusätzliche attribute anzulegen ohne großes
Datenbankmigrieren interessant finde.
Insbesondere, weil es ja durchaus schnell nötig werden kann zusätzliche attribute zu speichern.
Allerdings nimmt South einem wohl recht viel vom Schemaumbau ab ...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wenn du bei Django das ORM umgehst, dann geht recht viel Funktionalität verloren, das würde ich nicht machen wollen. Zudem MongoDB ja eigentlich der Running Gag ist unter den NoSQL-Datenbanken 

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice