Seite 1 von 1

mod_python handler: string übergabe

Verfasst: Sonntag 7. Januar 2007, 04:23
von Sr4l
Hallo ich weiß irgend wie nicht weiter, ich finde aber auch nichts in der Doku auf modpython.org es kann eigentlich nicht sein deshalb zweifel ich an meine Fähigkeit etwas zu ergooglen oder Texte lesen.

ich will daten per link übergeben bsp:

mod_python.publisher:
link http://localhost/py/mycode.py/index?name=me
heißt im www folder liegt die datei mycode.py mit folgendem inhalt:

Code: Alles auswählen

...
def index(req,name):
    req.content_type = "text/html"
    req.write('Dein Name ist %s'%name)
...
mod_python handler:
link http://localhost/py/mycode.py
heißt im www folder liegt die datei mycode.py mit folgendem inhalt:

Code: Alles auswählen

...
def handler(req):
    req.content_type = "text/html"
    req.write('Dein Name ist <keine Ahnung wie ich den String hin bekomme>')
...
beim mod_python handler ist in einer datei immer nur def handler und ich ewiß nicht wie ich da den string name reinbekomme.

Frage
Wie kann ich das lösen?
geht das vielleicht nur so wie es bei CGI auch geht?

Verfasst: Sonntag 7. Januar 2007, 11:56
von BlackJack
Das ist ähnlich wie bei CGI. Es sollte eine `FieldStorage`-Objekt als Attribut `form` auf dem `Request`-Objekt geben.

Verfasst: Sonntag 7. Januar 2007, 12:45
von Sr4l
wenn ich den Wert hinter dem ``index.py?`` haben möchte muss
ich req.args sagen und bekomme es dann als String. Also habe ich
mir was geschreiben was den string zerlegt:

Code: Alles auswählen

def stringparser(args):
    s = {}
    #
    handle = re.split("&",args)
    for i in handle:
        handle2 = re.split("=",i)
        s[str(handle2[0])] = str(handle2[1])
    return s

def handler(req):
    req.content_type = "text/html"
    req.write(str(stringparser(req.args)))
    return apache.OK
dazu kann ich per req.method abfragen ob es ein POST oder ein GET war req.read() soll mir die übertragenen Header anzeigen dabin ich aber noch nicht durchgestiegen, die Befehle aus CGI scheinen auch irgendwie implementiert zu sein. Also da muss man erstmal durchsteigen. ^^

Verfasst: Sonntag 7. Januar 2007, 16:01
von BlackJack
Was genau spricht gegen das `form` Attribut, anstatt sich das alles nochmal selbst zu programmieren!?

Verfasst: Sonntag 7. Januar 2007, 16:14
von Sr4l
ich nehme den mod_python publisher der handler ist mir zu ungewohnt ich habe oben ja beschrieben wie es im publisher geht und das ist deutlich komfortabler. ich hatte halt gedacht es würde da genauso gehen.

Verfasst: Sonntag 7. Januar 2007, 16:25
von BlackJack
Ist doch völlig egal, du bekommst in beiden Fällen ein Request-Objekt. :?: