Hallo liebe Leute,
Ich bin totaler Python Laie, hab ein Plone aufgesetzt und wollte per Javascript eine XML Ausgabe die auf einem anderen Server liegt auslesen.
Mozilla lässt das aber nicht zu.
Nun wüsste ich wie ich mit PHP die URL laden könnte und einfach per ECHO wieder ausgeben mit einem lokalen PHP File, hernach wäre es kein Problem mehr auf die Datei per Javascript zuzugreifen.
Fragliche URL ist http://www.unsaleable.com/soupandfish/search?sex=m
Die Frage ist also wie kriege ich Python unter Plone dazu diese URL auszulesen und nochmal am Bldschirm auszugeben?
Bin für jede Hilfe wirklich dankbar, das Projekt brennt schon ziehmlich
AJAX CrossDomain Probs mit Python umgehen
-
- User
- Beiträge: 8
- Registriert: Dienstag 9. Oktober 2007, 15:19
Ich füge eine py datei in die python lib ein die per urllib.urlopen die entfernte xml datei öffnet.
dazu habe ich eine external method angelegt im zmi die darauf zugreift. diese ist wiederum in ein dtml dokument gepackt.
nun sollte ich aber noch bei aufrufen des dtml dokuments (evtl. per url) parameter übergeben - wie kann ich aber im dtml dokument diese parameter abfragen um sie dann wiederum der external method zu übergeben?
oder gibt es eine andere methode als DTML um auf eine externe methode zuzugreifen?
dazu habe ich eine external method angelegt im zmi die darauf zugreift. diese ist wiederum in ein dtml dokument gepackt.
nun sollte ich aber noch bei aufrufen des dtml dokuments (evtl. per url) parameter übergeben - wie kann ich aber im dtml dokument diese parameter abfragen um sie dann wiederum der external method zu übergeben?
oder gibt es eine andere methode als DTML um auf eine externe methode zuzugreifen?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo stelegraph!stelegraph hat geschrieben:dazu habe ich eine external method angelegt im zmi die darauf zugreift. diese ist wiederum in ein dtml dokument gepackt.
Willkommen im Python-Forum!
Du kannst direkt auf die Externe Methode zugreifen. Du brauchst nicht auf DTML ausweichen.
http://localhost:8080/myplone/my_extmet ... param2=bbb
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 8
- Registriert: Dienstag 9. Oktober 2007, 15:19
hi gerold!
vielen dank für die antwort. bin zwar eine stunde vorher selbst drauf gekommen aber trotzdem super zu wissen dass hier leute sind die tatsächlich die lösung hätten
jetzt kämpfe ich grad noch mit meinem javascript parser.... und natürlich dem üblichen verdächtigen: dem IE
vielen dank für die antwort. bin zwar eine stunde vorher selbst drauf gekommen aber trotzdem super zu wissen dass hier leute sind die tatsächlich die lösung hätten
jetzt kämpfe ich grad noch mit meinem javascript parser.... und natürlich dem üblichen verdächtigen: dem IE
-
- User
- Beiträge: 8
- Registriert: Dienstag 9. Oktober 2007, 15:19
was ich übergeben müsste wäre ein parameter der so aussieht:
sex=m&designer=bw&size=42
allerdings gerät er dann natürlich durcheinander weil er dängt diese parameter wären an das python gerichtet, diese sollten jedoch diese (auf einem anderen server liegende) script hier ansprechen:
http://www.unsaleable.com/soupandfish/s ... esigner=mm
(hier mit beispiel parametern.
meine idee wäre die parameter anders zu übergeben. zb:
sex_m-designer_bw-size_42
wie schreibe ich aber einen python code der diesen parameter wieder in
sex=m&designer=bw&size=42
übersetzt?
für jegliche hilfe wäre ich sehr dankbar...
alles gute,
stefan
sex=m&designer=bw&size=42
allerdings gerät er dann natürlich durcheinander weil er dängt diese parameter wären an das python gerichtet, diese sollten jedoch diese (auf einem anderen server liegende) script hier ansprechen:
http://www.unsaleable.com/soupandfish/s ... esigner=mm
(hier mit beispiel parametern.
meine idee wäre die parameter anders zu übergeben. zb:
sex_m-designer_bw-size_42
wie schreibe ich aber einen python code der diesen parameter wieder in
sex=m&designer=bw&size=42
übersetzt?
für jegliche hilfe wäre ich sehr dankbar...
alles gute,
stefan
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Stefan!stelegraph hat geschrieben:sex=m&designer=bw&size=42
[...]
wie schreibe ich aber einen python code der diesen parameter wieder in sex=m&designer=bw&size=42 übersetzt?
Wenn der Kopf deiner externen Methode z.B. so aussieht:
Code: Alles auswählen
def my_external_method(self):
``self.REQUEST.QUERY_STRING`` sollte dir weiter helfen.
Ich kann's jetzt nicht ausprobieren. Schreibe ob es funktioniert hat oder nicht.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 8
- Registriert: Dienstag 9. Oktober 2007, 15:19
hi gerold!
danke!
habs jetzt mal so gemacht und klappt wunderbar:
danke nochmal derweil!
danke!
habs jetzt mal so gemacht und klappt wunderbar:
Code: Alles auswählen
>>> s = "sex_m-designer_bw-size_42"
>>> s = s.replace('_', '=')
>>> s = s.replace('-', '&')
-
- User
- Beiträge: 8
- Registriert: Dienstag 9. Oktober 2007, 15:19
nun sollte ich noch gültigen XML Code ausgeben - ist ein header problem...
wie sag ich ihm das?
leider funktioniert return printed bei mir nicht. zope behauptet es gäbe diese globale variable nicht...
wie sag ich ihm das?
leider funktioniert return printed bei mir nicht. zope behauptet es gäbe diese globale variable nicht...
Code: Alles auswählen
def getXML2(self, param):
print "Content-Type: text/xml; charset=iso-8859-1"
print
param = param.replace('_', '=')
param = param.replace('-', '&')
urlnew = 'http://www.unsaleable.com/soupandfish/search?'+param
feed = urllib.urlopen (urlnew)
ergebnis = feed.read ()
zusammen = '<?xml version="1.0" encoding="iso-8859-1" ?>\n'+ergebnis
print zusammen
return printed
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo stelegraph!stelegraph hat geschrieben:nun sollte ich noch gültigen XML Code ausgeben - ist ein header problem...wie sag ich ihm das?
"print mit späterer Rückgabe von printed" funktioniert nur innerhalb von Zope. Du aber arbeitest mit einer externen Methode.
Ungetestet, aber in etwa so:
Code: Alles auswählen
def my_external_method(self):
request = self.REQUEST
response = request.RESPONSE
s = (
"Hallo Welt\n"
"Hallo Welt"
)
response.setHeader('content-type', 'text/plain')
response.setHeader('content-length', str(len(s)))
#response.setHeader('content-disposition', 'attachment; filename=hallowelt.txt')
response.write(s)
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 8
- Registriert: Dienstag 9. Oktober 2007, 15:19
aber folgendes ist mir nicht klar:
ich muss ja ein xml dokument am bildschirm damit ausgeben können.
also am bildschirm soll das ganze sich so verhalten als wärs ein text\xml ding.
brauch ich dazu kein return?
kann ich sagen: return response?
sorry für diese detailfragen... ich glaube mir ist einiges an grundlagen nicht klar... und das projekt sollte morgens um 5 uhr funktionieren...
ich muss ja ein xml dokument am bildschirm damit ausgeben können.
also am bildschirm soll das ganze sich so verhalten als wärs ein text\xml ding.
brauch ich dazu kein return?
kann ich sagen: return response?
sorry für diese detailfragen... ich glaube mir ist einiges an grundlagen nicht klar... und das projekt sollte morgens um 5 uhr funktionieren...
-
- User
- Beiträge: 8
- Registriert: Dienstag 9. Oktober 2007, 15:19
DANKE
DANKE
DANKE
das Ergebnis ist hier zu begutachten (ab ca. 5 Uhr):
http://www.soupandfish.net/
ohne deinen letzten tip wärs wohl nichts geworden.
DANKE
DANKE
das Ergebnis ist hier zu begutachten (ab ca. 5 Uhr):
http://www.soupandfish.net/
ohne deinen letzten tip wärs wohl nichts geworden.