Seite 1 von 1

Pythonskript über Apache ausgeben, sehr einfaches Skript

Verfasst: Freitag 20. April 2007, 08:14
von mysticds
Hallo Zusammen!

Ich muß für eine kleine Vorführung ein Pythonskript im Firefox anzeigen. Ist dies möglich? Ich habe schon ein paar Skripte auf der Kommandozeile zusammengebaut aber mit der anzeige über den Apache klappt es nicht so recht.

Ich habe über yast das Python mit in den Apache eingebunden. Das Skript habe ich unter /srv/www/cgi-bin gelegt. Ich bekomme aber immer die nur Fehlermeldung, dass ich das Skript herunterladen kann. Als Beispiel hab ich ertsmal nur:

print "Hello World"

genommen.

Anschließend will ich es noch um eine Datenbankanbindung erweitern, was schon auf der Kommandozeile geklappt hat.

Hoffentlich könnt ihr mir etwas helfen, da ich kein riesen Framework brauche und haben möchte.

Danke!

MfG

Verfasst: Freitag 20. April 2007, 15:59
von Leonidas
Hallo mysticds, willkommen im Forum,

such doch im Forum nach CGI, sowas wurde schon oft gefragt.

Verfasst: Samstag 21. April 2007, 02:50
von Y0Gi
Wenn es dir zum Download angeboten wird, wird es nicht korrekt von Python geparst. Dazu musst du die Shebang-Line in die erste Zeile setzen (`#!/usr/bin/env python` oder ggf. an das System angepasst) und Apache über dessen Config oder eine .htaccess (wenn erlaubt) mitteilen, dass Python Dateien mit der Endung .py interpretieren soll - etwa so:

Code: Alles auswählen

Options +ExecCGI
AddHandler cgi-script .py

Verfasst: Sonntag 22. April 2007, 09:27
von jens
[wiki]Web-Skripte zum laufen bringen[/wiki] :lol:

Verfasst: Sonntag 22. April 2007, 11:27
von Y0Gi
jens hat geschrieben:[wiki]Web-Skripte zum laufen bringen[/wiki] :lol:
Der Edit-History nach warst *du* also derjenige, der den Titel verbrochen hat. "Laufen" schreibt man in dem Fall nämlich groß.

Verfasst: Sonntag 22. April 2007, 12:00
von jens
Es steht dir frei das zu korrigieren :lol:

Verfasst: Sonntag 22. April 2007, 14:26
von Y0Gi
Wodurch dann alle Links darauf kaputt gehen? Nein, danke.

Verfasst: Sonntag 22. April 2007, 16:18
von mitsuhiko
Habs umbenannt.

Verfasst: Montag 23. April 2007, 12:52
von mysticds
Danke, für die Tipps. Es hat alles geklappt!

So, hab einen Teil jetzt auch fertig. Hab ein einfaches Skript über das mod-python ausgeben lassen - jetzt ratet mal welches ;-)

Code: Alles auswählen

from mod_python import apache

def handler(req):
    req.content_type = 'text/plain'
    req.write(“Hello World!”)
    return apache.OK
soweit ist ja auch alles super, aber wenn ich ein

Code: Alles auswählen

use DBI
am Anfang einbringe gibt es nur noch Fehlermeldungen. Es funktioniert bei mir aber in der Konsole. Mache ich da etwas grundsätzlich falsch? Wollte nämlich ein paar Zeilen aus der Datenbank auslesen und die dann in ein Array speichenr und dann ausgeben.

Danke für eure Antworten!

Verfasst: Montag 23. April 2007, 21:26
von Y0Gi
`use DBI;` ist kein Python, sondern Perl, und DBI ist das bekannte Perl-Modul für Datenbank-Konnektivität. Mir scheint, du hast da ein paar Tutorials durcheinander gewürfelt.

Verfasst: Dienstag 24. April 2007, 06:41
von mysticds
Y0Gi hat geschrieben:`use DBI;` ist kein Python, sondern Perl, und DBI ist das bekannte Perl-Modul für Datenbank-Konnektivität. Mir scheint, du hast da ein paar Tutorials durcheinander gewürfelt.
HILFE HILFE!!! Selbstverblö.....

Da hast du recht. Ich wollte auch eigentlich

Code: Alles auswählen

import DB2
schreiben.

Verfasst: Dienstag 24. April 2007, 07:46
von jens
Für ein "Hello World" würde ich die finger von mod_python lassen! Nimm ganz einfaches CGI, das dürfte reichen!

Wenn du Leute beeindrucken willst, dann zeig ihnen django :)

Verfasst: Dienstag 24. April 2007, 08:04
von mysticds
jens hat geschrieben:Für ein "Hello World" würde ich die finger von mod_python lassen! Nimm ganz einfaches CGI, das dürfte reichen!

Wenn du Leute beeindrucken willst, dann zeig ihnen django :)
Ich wollte es nur mit dem mod_python testen. Beeindrucken will ich keinen. Es soll nur eine kleine Datenbankabfrage sein.

Verfasst: Dienstag 24. April 2007, 08:33
von jens
Oben stand was von "kleine Vorführung", deswegen dachte ich...

Wie gesagt, lass besser die Finger von mod_Python und Co. Das macht für kleine Sachen keinen Sinn. Zum Entwickeln schon gar nicht. Es ist eigentlich nur für den performanten Produktiveinsatz gedacht...

Da es nicht das erste Mal ist, hab ich mal einen neuen FAQ Eintrag dazu geschrieben: [wiki]FAQ#IchHabProblemeMitModPython[/wiki] Wie immer: Bitte evtl. verbessern ;)

Verfasst: Dienstag 24. April 2007, 09:08
von mysticds
jens hat geschrieben:Oben stand was von "kleine Vorführung", deswegen dachte ich...

Wie gesagt, lass besser die Finger von mod_Python und Co. Das macht für kleine Sachen keinen Sinn. Zum Entwickeln schon gar nicht. Es ist eigentlich nur für den performanten Produktiveinsatz gedacht...

Da es nicht das erste Mal ist, hab ich mal einen neuen FAQ Eintrag dazu geschrieben: [wiki]FAQ#IchHabProblemeMitModPython[/wiki] Wie immer: Bitte evtl. verbessern ;)
Danke für die "Aufklärung", dann wende ich mich mal dem CGI zu. im Faq ist das Wort nutzen falschgeschrieben nutzten ;-)

Re: Pythonskript über Apache ausgeben, sehr einfaches Skript

Verfasst: Dienstag 24. April 2007, 09:56
von gerold
mysticds hat geschrieben:Hoffentlich könnt ihr mir etwas helfen, da ich kein riesen Framework brauche und haben möchte.
Hi mysticds!

Es gibt auch kleine Frameworks, die in Python geschrieben sind. Ich arbeite derzeit mit Karrigell und bin wirklich glücklich damit. http://karrigell.sourceforge.net/ 8)

1. Karrigell-Dateien herunterladen und entpacken http://sourceforge.net/project/showfile ... _id=218275
2. Python-Datei mit dem Inhalt ``print "Hello, world !"`` in den entpackten Ordner "webapps" legen (test.py)
3. Das Programm ``Karrigell.py`` starten
4. Ergebnis im Browser ansehen (http://localhost/test.py)

Man muss ja ab und zu mal wieder für die einfachen Sachen Werbung machen.

mfg
Gerold
:-)

Verfasst: Dienstag 24. April 2007, 10:45
von BlackJack
Aber Gerold, das benutzt doch kein WSGI… :roll:

SCNR

Verfasst: Dienstag 24. April 2007, 11:29
von Y0Gi
Wobei es in diesem Fall tatsächlich ausreichend, ja fast schon angemessener ist, einen Python-HTTPd anstelle von Apache zu verwenden, um so eine große Abhängigkeit einzusparen.

Verfasst: Dienstag 24. April 2007, 13:03
von mysticds
Danke, Gerold!

Das Ding ist super! Hab es vorhin mal getestet und die Sachen, die ich machen wollte haben auf anhieb geklappt - ich bin begeistert.

DANKE!