Pythonskript über Apache ausgeben, sehr einfaches Skript

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
mysticds
User
Beiträge: 6
Registriert: Freitag 20. April 2007, 08:04

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo mysticds, willkommen im Forum,

such doch im Forum nach CGI, sowas wurde schon oft gefragt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

[wiki]Web-Skripte zum laufen bringen[/wiki] :lol:

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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ß.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Es steht dir frei das zu korrigieren :lol:

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Wodurch dann alle Links darauf kaputt gehen? Nein, danke.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Habs umbenannt.
TUFKAB – the user formerly known as blackbird
mysticds
User
Beiträge: 6
Registriert: Freitag 20. April 2007, 08:04

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!
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

`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.
mysticds
User
Beiträge: 6
Registriert: Freitag 20. April 2007, 08:04

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.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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 :)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mysticds
User
Beiträge: 6
Registriert: Freitag 20. April 2007, 08:04

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.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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 ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mysticds
User
Beiträge: 6
Registriert: Freitag 20. April 2007, 08:04

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 ;-)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Aber Gerold, das benutzt doch kein WSGI… :roll:

SCNR
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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.
mysticds
User
Beiträge: 6
Registriert: Freitag 20. April 2007, 08:04

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!
Antworten