String weiterverarbeiten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Newbie2009
User
Beiträge: 12
Registriert: Mittwoch 15. Juli 2009, 11:55

Hallo,

ich möchte in meinem Python Skript einen String weiterverarbeiten.
Der String wird an eine URL gesendet, welche eine Python Funktion aufruft.
In dieser Funktion soll der String weiterverarbeitet werden.

Ich habe es so probiert, funktioniert aber nicht:

Code: Alles auswählen

def import_test(self):
    data = self.GET.get('data')
    data = data.split('\n');
Wie kann man Strings weiterverarbeiten, die man über eine URL bekommt?
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Hallo Newbie2009!

Arbeitest du mit CGI?
Falls ja:

Code: Alles auswählen

#!/usr/bin/env python
import cgitb
cgitb.enable()
import cgi, sys

sys.stdout.write("Content-Type: text/html\n\n")
form = cgi.FieldStorage()
data = form["date"].split("\n")
# ...
HTH
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
Newbie2009
User
Beiträge: 12
Registriert: Mittwoch 15. Juli 2009, 11:55

Danke schön das werd ich mal probieren.

Gibt es auch eine Lösung ohne CGI?
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Newbie2009 hat geschrieben:Gibt es auch eine Lösung ohne CGI?
Naja, du musst ja irgendwie mit deinem Webserver kommunizieren und dir die Daten reichen und zurueckgeben lassen. Natuerlich kannst du auch mit einem Webframework (Forensuche hilft) arbeiten.

HTH
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Evtl waere XML-RPC auch was fuer dich, gibt's auch in der Standardbibliothek.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Newbie2009
User
Beiträge: 12
Registriert: Mittwoch 15. Juli 2009, 11:55

Ich hab das mit CGI mal probiert.

Code: Alles auswählen

def import_article(self):
    sys.stdout.write("Content-Type: text/html\n\n")
    form = cgi.FieldStorage()
    data = form["date"].split("\n") 
      
    print data 
Da bekomme ich die Fehlermeldung: KeyError 'date'

Was stimmt da jetzt nicht?
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Newbie2009 hat geschrieben:Da bekomme ich die Fehlermeldung: KeyError 'date'

Was stimmt da jetzt nicht?
Entschuldige, aber ich habe mich vertippt. Du musst als Key in den eckigen Klammern eben anstatt "date" "data" oder wie auch immer dein parameter den du uebergeben bekommst heisst. Aber das haettest du doch aufgrund der eindeutigen Fehlermeldung auch selber erkennen koennen. Ich empfehle dir mal ein Tutorial ueber Python durchzuarbeiten. Empfehlenswert ist IMHO 'A Byte of Python'.

HTH
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
Newbie2009
User
Beiträge: 12
Registriert: Mittwoch 15. Juli 2009, 11:55

Ich hatte "data" ja auch schon probiert, da ging es auch nicht. Aber ich weiß woran das gelegen hat, ich hatte keine Werte in "data" übergeben.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Es gibt dafür doch getfirst(). Damit kann man default-Werte angeben und läuft nicht in einen KeyError - wenn man das denn so möchte.

Code: Alles auswählen

form = cgi.FieldStorage()
data = form.getfirst("date", "keine Angabe")
print data 
Steht aber alles in der Doku zum cgi-Modul ;-)
Antworten