Webshop

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
blubber
User
Beiträge: 123
Registriert: Montag 19. März 2007, 09:08

Moin zusammen,

ich hätte mal eine Frage zum Thema dynamische Webprogrammierung. Und zwar hab ich mir nun ein bischen Webspace besorgt, auf dem nun auch Python - Skripte laufen. Momentan bastel ich an einer kleinen Website, die eigentlich zu 95% statisch sein wird, sprich, rein in HTML geschrieben. Das einzige, was dynamisch sein soll, ist ein kleiner Webshop...also wirklich klein, nichts weltbewegendes. Die Anbindung soll an eine MySQL Datenbank sein. Nun, da ich früher mal dynamische Seiten mit PHP erstellt habe, würde ich das nach ein wenig Einarbeitung sicher auch wieder mit PHP hinbekommen. Jeztt würde mich aber interessieren, ob das mit Python möglich ist. Also quasi Python Code auf Links "hinterlegen", Datenbankzugriffe etc. Bin auf dem Gebiet quasi absoluter Neuling, vielleicht habt ihr mir ein paar Links, wie man so grundlegende Dinge durchführen kann?

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

blubber hat geschrieben:Jeztt würde mich aber interessieren, ob das mit Python möglich ist. Also quasi Python Code auf Links "hinterlegen", Datenbankzugriffe etc. Bin auf dem Gebiet quasi absoluter Neuling, vielleicht habt ihr mir ein paar Links, wie man so grundlegende Dinge durchführen kann?
Ja, natürlich kann man so etwas mit Python machen, sogar noch besser als in PHP, da man in Python eine Menge qualitativ hochwertiger Bibliotheken nutzen kann.

Die Frage ist nur: Was für Webspace hast du? Webspace mit CGI? Oder etwas besseres?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo blubber!

Hier noch ein paar Informationen für dich:

- [wiki]Python im Web[/wiki]
- http://wiki.python.org/moin/CgiScripts

Wobei ich bei deiner niedrigen Anforderung bei CGI bleiben würde. Das ja kein so schlechter Einstieg in die Webprogrammierung.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
blubber
User
Beiträge: 123
Registriert: Montag 19. März 2007, 09:08

Hallo zusammen,

also ich hab dieses Webhosting-Paket:
http://www.greatnet.de/cms/front_conten ... 4&idart=43
Es wird lediglich angegeben, dass der Server wohl Python unterstützt. Warum ich Python benutzen möchte? Gute Frage, ich denke mal hauptsächlich aus dem Grund, weil ich nun ein dreiviertel Jahr mit Python gearbeitet habe und eben "in der Materie drin bin". PHP konnte ich mal ganz gut, wäre also sicher auch kein Problem sich da einzuarbeiten und meine Aufgabe damit zu lösen, nur ich dachte, möglicherweise lässt sich mit Python vieles einfacher lösen !?
Mir fehlt momentan nur noch das Gesamtverständnis. In PHP ist es ja so, dass ich meine Webseite dann einfach die Endung .php geben muss. Man kann dann ganz gewöhnlichen html Code schreiben, und sobald man ein PHP - Code einfügen möchte, implementiert man diesen eben mit <?php ... ?>
Nun, ist das mit Python genau so? Oder sind die Skripte von den grafischen Files (.html etc) "getrennt" und laufen quasi nebenher? Doch dann muss man diese ja auch irgendwie implementieren....
Leider habe ich auch keine Ahnung, wie das mit den CGI Skripten abläuft. Auf meinem Webserver gibt es z.B. ein extra Verzeichnis "CGI" oder so ähnlich, gehören da derartige Skriptfiles herein (CGI, Python, Pearl usw??)
Jo, wie ihr seht, benötige ich einfach grundlegende Dinge, bevor ich ans reine Programmieren gehen kann.

Gruß
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Hast du dir Gerolds Link zu CGI mal angeschaut?

CGI-Scripte werden beim Aufruf durch einen Browser (oder was auch immer) serverseitig ausgefuehrt und ihre Standardausgabe wird an den Browser gesendet. D.h. du schreibst den Html-Inhalt per print im Skript raus.

Wie die CGI-Scripte heissen muessen, damit sie als solche ausgefuehrt werden, ist je nach Webserver-Konfiguration verschieden. Bei mir werden alle .py-Dateien als CGI-Skripte ausgefuehrt, egal, wo sie liegen. Wenn du einen Ordner cgi hast (manchmal auch cgi-bin), muessen sie wohl darin abgelegt werden.

Ein einfaches (sinnloses) Beispiel:

Code: Alles auswählen

print "Content-type: text/html"
print
print """
<html>
<head><title>Hallo Welt</title></head>
<body>
<h3>Hallo Welt</h3>
</body></html>
"""
Wenn man damit umfangreiches Websiten-Design machen will, ist das natuerlich muehselig, aber fuer kleine Sachen schnell gemacht.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
blubber
User
Beiträge: 123
Registriert: Montag 19. März 2007, 09:08

Hi,

hab Deinen Beispielcode mal in eine test.py gepackt und auf meinen Webserver geladen. Wenn die Datei im cgi-bin Ordner liegt, dann wird der Code korrekt ausgeführt, allerdings muss ich wirklich explizit den Pfad angeben, also www.meineurl.de/cgi-bin/test.py
Aber ich denke, dass kann ich irgendwo einstellen, dass meine Domain direkt auf den cgi-bin Ordner verlinkt. Also das ist nicht das Problem.

Was ich allerdings unschön finde ist, dass man quasi alles "printen" muss. Ich hätte mir gewünscht, dass innerhalb einer .py Datei ein gewöhnlicher HTML Code ebenfalls ausgeführt wird und man nur an notwendigen Stellen dann seine Python Skripte implementiert...wie z.B. mit PHP eben auch in dem man irgendwo im HTML Code ein <?php ...... ?> einfügt.

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

blubber hat geschrieben:hab Deinen Beispielcode mal in eine test.py gepackt und auf meinen Webserver geladen. Wenn die Datei im cgi-bin Ordner liegt, dann wird der Code korrekt ausgeführt, allerdings muss ich wirklich explizit den Pfad angeben, also www.meineurl.de/cgi-bin/test.py
Aber ich denke, dass kann ich irgendwo einstellen, dass meine Domain direkt auf den cgi-bin Ordner verlinkt. Also das ist nicht das Problem.
Du kannst möglicherweise auch Rewrite-Rules setzen, von daher ist das wohl kein Problem.
blubber hat geschrieben:Was ich allerdings unschön finde ist, dass man quasi alles "printen" muss.
Musst du nicht, denn normalerweise nutzt man eine Template-Engine (egal welche) von dem her ist das dann ziemlich egal. Wenn du WSGI benutzt (was es dir ermöglicht bestehende Middlewares zu verwenden, also welche die zum Beispiel Sessions bieten - spart also massiv arbeit, und dir ermöglich statt CGI jede andere Einbindungsmöglichkeit auch zu nutzen), empfiehlt es sich, so etwas wie Werkzeug zu verwenden. Ich habe in den letzten Wochen damit auch eine simple Seite gemacht und war ziemlich zufrieden damit. Natürlich nutze ich auch noch eine gute Template-Engine. Ob und welches Framework du nutzt ist aber letztendlich egal, das bleibt deinen Vorlieben überlassen.
blubber hat geschrieben:Ich hätte mir gewünscht, dass innerhalb einer .py Datei ein gewöhnlicher HTML Code ebenfalls ausgeführt wird und man nur an notwendigen Stellen dann seine Python Skripte implementiert...wie z.B. mit PHP eben auch in dem man irgendwo im HTML Code ein <?php ...... ?> einfügt.
Nein, glaub mir, das wünscht du dir nicht. Es ist zwar mit Karrigell oder Spyce durchaus möglich und das ist auch das was ich mal benutzt habe, aber wenn man ernsthaft mal was mit richtigen Frameworks macht, ist das einbinden von Code in HTML amateurhaft und unsauber. Ich würde nicht wieder zurückwollen, nachdem ich nun weiß, wie man Web-Programmierung strukturiert betreibt.

Ich würde heutzutage nicht mehr ohne Framework programmieren wollen. In keiner Sprache.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
blubber
User
Beiträge: 123
Registriert: Montag 19. März 2007, 09:08

Guten Morgen,

ok. Da meine aktuelle Website bis auf den Shop nahezu fertig ist, möchte ich das nun nicht nochmal alles umkrempeln. Sobald ich eine neue Seite anfange, denke ich, dass ich das dann mal mit so einem Framwork probiere.
Danke für die Antworten.

Gruß
Antworten