External Method Parameterübergabe

Django, Flask, Bottle, WSGI, CGI…
Antworten
grandma
User
Beiträge: 26
Registriert: Mittwoch 30. Mai 2007, 15:04

Mittwoch 30. Mai 2007, 15:09

Hi,

ich bin mir nicht sicher ob das Thema besser hier oder bei Zope/Plone passt..
Anyway,

Ich will von einer HTML page per AJAX request (oder wie auch immer) ein request an eine External Method (Zope) schicken.

In dieser External Method will ich dann die Parameter des Requests auslesen.. wie geht das?

Schicken und eine Antwort geben klappt schon ganz gut, nur kann ich die Parameter nicht verarbeiten.

Bin für jede Hilfe dankbar.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 30. Mai 2007, 20:31

grandma hat geschrieben:In dieser External Method will ich dann die Parameter des Requests auslesen.. wie geht das?
Hallo grandma!

Willkommen im Python-Forum!

Ja, das geht. Du musst deine Externe Methode mit dem Parameter "self" versehen. Schon hast du in "self" das komplette "context"-Objekt.

Ich kann es jetzt nicht ausprobieren. Lass dir einfach mal in der Externen Methode mit ``return dir(self)`` und ``return dir(self.REQUEST)`` ausgeben, was du angeliefert bekommst.

...

Ich habe es jetzt ausprobiert. ``self.REQUEST`` ist eindeutig der Request. Inklusive aller übergebenen Daten.

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

def hallo(self):
    return self.REQUEST.items()
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
grandma
User
Beiträge: 26
Registriert: Mittwoch 30. Mai 2007, 15:04

Donnerstag 31. Mai 2007, 07:30

Besten Dank, ich habe es nur mit context.Request probiert gehabt..
grandma
User
Beiträge: 26
Registriert: Mittwoch 30. Mai 2007, 15:04

Donnerstag 31. Mai 2007, 11:00

Jetzt hab ich aber das Problem das er den Parameter mit self.REQUEST.get('parametername') nicht auslesen kann.

Die Funktion gibt None zurück

Hab versucht per get und post zu schicken sowohl ajax als auch normal.
Der Parameter steht auch im REQUEST objekt drinnen, nur wie kann ich das jetzt einfach auslesen? (notfalls parse ich den dir(REQUEST) string...)


Gibts irgendwo ne Docu zu dem Request objekt? find da nix..
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 31. Mai 2007, 11:35

grandma hat geschrieben:Jetzt hab ich aber das Problem das er den Parameter mit self.REQUEST.get('parametername') nicht auslesen kann. Die Funktion gibt None zurück
Hallo grandma!

Der Fehler muss wo anders liegen.

Code: Alles auswählen

def hallo(self):
    return "Vorname: ", self.REQUEST.get("vorname", "<>")
Wenn ich den URL http://localhost:8080/hallo?vorname=Gerold
aufrufe, dann zeigt es mir den Vornamen im Browser an. Ob ich das mit POST, GET oder über XMLRPC aufrufe sollte da jetzt keinen Unterschied machen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
grandma
User
Beiträge: 26
Registriert: Mittwoch 30. Mai 2007, 15:04

Donnerstag 31. Mai 2007, 12:13

Danke, ist gelöst jetzt.

Ich dachte ich spinne, das mit der URL ging, das Requestobjekt sah genauso aus wie bei der AJAX-Request.

Der Fehler lag daran das ich beim übergeben "test2 = 5" geschrieben hab und nicht "test2=5" so das er gedacht hat die variable test2 hat noch ein leerzeichen hintendran.
Antworten