python-scripte

Hier geht es um XAMPP AddOns wie z. B. das Apache-Konfigurations-Tool Apanatschi. Irgendwelche Probleme damit oder Fragen dazu? Dann ist hier genau der richtige Ort um nachzufragen.

python-scripte

Postby emrum » 11. August 2004 21:07

Hallo,

Ich möchte Python-Scripte mit mod_python ausführen.
Das funktioniert bisher mit dem mitgelieferten Test-Script.

Wie kann ich es einrichten, daß alle .py Scripte im Verzeichnis htdocs/python/ (und evtl. auch in Unterverzeichnissen) ausführbar werden, ohne daß ich sie jeweils in der python.conf eintragen muß?

Unten ist die python.conf, die ich zur Zeit verwende.
Wenn ich mit dem Browser auf ein Script zeige, z.B. http://localhost/python/anyscript.py wird immer das default.py - Script ausgeführt.

Danke, Emanuel

Code: Select all

LoadFile "F:/xampp/python/python23.dll"
LoadModule python_module "F:/xampp/python/mod_python.so"

<Directory "F:/xampp/htdocs/python/">
  AddHandler python-program .py
  PythonDebug On
    <Files *.py>
        PythonPath "['F:/xampp/htdocs/python/'] + sys.path"
    </Files>
    <Files "index.py">
      PythonHandler index
    </Files>
    <Files "xa.py">
      PythonHandler xa
    </Files>
    PythonHandler default
#  PythonHandler mod_python.publisher
</Directory>

emrum
 
Posts: 2
Joined: 11. August 2004 20:51

Postby emrum » 13. August 2004 09:41

Inzwischen ist mir selber "ein Licht aufgegangen", also schreibe ich mir mal die Antwort :-)

Wichtig ist zu wissen, daß im Python-Script ein Handler sein muß, also eine Funktion, die von mod_python aufgerufen wird.

Wenn Sie im httpd.conf von Apache für das Python-Verzeichnis als Handler den mod_python.publisher eintragen, dann kann der Name des Handlers über den URL des Browsers bestimmt werden.

Beispiel:
http://localhost/python/myScript.py/handlername
würde bei entsprechender Konfiguration das Script 'myScript.py' im Verzeichnis 'htdocs/python/' ausführen und dort den Handler 'handlername' aufrufen (mit dem req-Objekt als Parameter).

Wenn sie den Handlernamen weglassen
http://localhost/python/myScript.py
dann wird der Defaul-Handler mit dem Namen 'index' Ausgeführt, sofern dieser im Script definiert ist:
def index(req):


Hier ist noch ein Beispiel für den Python Abschnitt in der httpd.conf

Code: Select all

LoadFile "F:/xampp/python/python23.dll"
LoadModule python_module "F:/xampp/python/mod_python.so"

<Directory "F:/xampp/htdocs/python/">
    # Python-Scripte mit der Endung .py als auszuführend markieren
   AddHandler mod_python .py
   
   <Files *.py>
        # Den Pfad des Verzeichnisses hinzufügen
        PythonPath "['F:/xampp/htdocs/python/'] + sys.path"
   </Files>
   
   # mod_python.publisher als Handler definieren
   PythonHandler mod_python.publisher
   PythonDebug On
</Directory>




Zusätzlicher Hinweis:
Wenn Sie
AddHandler mod_python .py
durch
SetHandler mod_python
ersetzen, dann werden auch Scripte ohne .py Erweiterung
ausgeführt, bzw. Sie brauchen in der Url keine Datei-Erweiterung mehr angeben.

Copyright (c) Emanuel Rumpf
Auf diesen Text wende ich die GNU Free Documentation License v1.2 an.
Mehr Info bei http://www.gnu.org/copyleft/fdl.html
emrum
 
Posts: 2
Joined: 11. August 2004 20:51


Return to XAMPP AddOns

Who is online

Users browsing this forum: No registered users and 5 guests