Python code in .cgi file

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

Mittwoch 2. März 2011, 22:26

Leute,
ich hab absolut keine Ahnung von Webprogrammierung, muss aber irgendwie ein bisschen an einem Webinterface von unserem Institut arbeiten.
Wie es mir scheint wird ein grosser Teil der Funktionalität des Interfaces in CGI Skripten erledigt. Diese sind reiner Python Code, enden aber auf .cgi. Mit 'python script.cgi' können die sowohl in der Shell ausgeführt werden, und im Browswer laufen die auch. Allerdings kann ich die Codecompletion der Shell nicht benutzen ('TAB' vervollständigt den Skriptnamen nicht). Was muss ich wo ändern?
Die Skripts laufen auf einem Linux server.
Eine andere Frage. Ich möchte das ganze am liebsten so programmieren, dass ich immer alles zuerst in der Shell teste. Gibt es dazu gute Guidelines die helfen, hier richtig vorzugehen? Was sind den so die wichtigsten Grundsätze die es zu beachten gibt?

Vielen Dank für eure Antworten.
[url=http://www.proandkon.com]proandkon.com[/url]
BlackJack

Mittwoch 2. März 2011, 23:35

@mzh: Die `"code" completion` der Shell hat nichts mit Python zu tun. Das ist eine Konfigurationsfrage der Shell.

In der Shell testen ist so eine Sache. Sollte bei CGI möglich sein, solange man vor dem Aufruf dafür sorgt, dass es für das Skript so aussieht, als wenn es in einer CGI-Umgebung läuft, aber letztendlich möchte man das mit einem Webserver testen. Denn Formulareingaben immer "per Hand" in die entsprechenden Umgebungsvariablen stecken, macht keinen Spass. Webwanwendungen entwickelt man normalerweise auf einem Entwicklersystem und bastelt nicht am laufenden Produktivsystem.

Da ist also die Frage auf was die Skripte so zugreifen. Datenbank? Andere Programme auf dem System? So eine Umgebung müsstest Du Dir auf dem Entwicklungssystem auch schaffen. Kann auch auf dem gleichen Rechner sein, aber eben ein anderer Webserver. Ein CGI-fähiger Webserver ist in Python ja in ein paar Zeilen geschrieben -- das reicht vielleicht schon aus zum Entwickeln.
Benutzeravatar
jens
Moderator
Beiträge: 8489
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 3. März 2011, 10:27

In Django hat man dafür einen "Test-Client" mit dem man unittests schreiben kann. Das ganze könnte man auch mit normalen CGI Skripten bauen.

Unittests sind schon was feines ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

Donnerstag 3. März 2011, 10:44

@BlackJack: Gut, ganz praktisch gefragt: wie kriege ich hin, dass ich bei

Code: Alles auswählen

 prompt $ python skript.cgi
Code completion zur Verfügung habe? Der Workflow sieht so aus, dass das der Browser über den Server (Apache) das CGI Skript startet, welches dann (reiner Python code) ein File von einer bestimmten Webseite runterlädt, serverseitig auf die disk schreibt und dieses mit einem anderen Programm serverseitig kurz bearbeitet. Das bearbeitete File stellt die Grundlage für eine spätere Berechnung dar.

@jens: ja, steht auf der Liste. Muss mich da aber einlesen.
[url=http://www.proandkon.com]proandkon.com[/url]
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Donnerstag 3. März 2011, 11:03

mzh hat geschrieben:@BlackJack: Gut, ganz praktisch gefragt: wie kriege ich hin, dass ich bei

Code: Alles auswählen

 prompt $ python skript.cgi
Code completion zur Verfügung habe?
Falls du die Bash nutzt, wirst du wohl bash_completion installiert haben, denn ansonsten wuerdest du einfach alle Dateinamen angeboten bekommen. Unter Debian habe ich z.B. eine Datei /etc/bash_completion.d/python, welche die Regeln fuer Python festlegt.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
noisefloor
User
Beiträge: 2899
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Freitag 4. März 2011, 13:04

Hallo,

@mzh: Du kannst dir auch mit 5 Zeilen Code eine Webserver in Python schreiben, der CGI-Skripe ausführt. Zum Testen sehr gut geeignet. Code solltest du an diversen Stellen im Web und in den meisten Python-Büchern finden. :-)

Gruß, noisefloor
Antworten