Formular in python ?

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Anfanger
User
Beiträge: 4
Registriert: Dienstag 27. Februar 2007, 21:15

Formular in python ?

Beitragvon Anfanger » Dienstag 27. Februar 2007, 21:27

Hallo. Ich bin der Anfangere, wenn es um Python geht. Ich lese viel FAQ und Tutorials, und ich finde keine Information uber Formular in python + gui.

Ich mochte euch fragen, ob dieses moglich ist:

ZB. Ich habe den Formular auf der Seite. Er sieht so:
<form action="http://www.meineseite.cz/login.php" method="post">
Passwort: <input type="text" name="passwrd">
<input type="submit" value="enter"></form>


Kann man mir jemand die Code schreiben, wie das in python + pyQt (oder andere GUI) sieht ? Also: python + gui + formular + post ?

Danke im Voraus

PS: Sory fur mein Deutsch, aber ich bin kein Deutscher ;]
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 27. Februar 2007, 22:56

Ahoj Anfanger, willkommen im Forum!

Irgendwie habe ich nicht ganz verstanden was du planst - eine GUI in der man ein Passwortfeld angeben kann, dass dann per POST an einen Server geschickt wird? Oder soll es direkt HTML-Code anzeigen? Oder, oder oder?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Formular in python ?

Beitragvon gerold » Mittwoch 28. Februar 2007, 09:44

Anfanger hat geschrieben:[code=]
<form action="http://www.meineseite.cz/login.php" method="post">
Passwort: <input type="text" name="passwrd">
<input type="submit" value="enter"></form>[/code]
Kann man mir jemand die Code schreiben, wie das in python + pyQt (oder andere GUI) sieht ? Also: python + gui + formular + post ?

Hallo Anfaenger!

Formulare, wie du oben eines aufgezeigt hast, sind in HTML (Hypertext Markup Language) geschrieben und werden von Browsern wie z.B. dem Mozilla Firefox oder dem Internet Explorer interpretiert und angezeigt. Formulare können ausgefüllt werden. Diese Daten werden normalerweise an einen Internetserver weitergeleitet. Dieser gibt dann wieder HTML zurück, welches der Browser anzeigt.

Das ist die Welt des "World Wide Web" und hat mit GUI-Toolkits wie pyQt oder wxPython NICHTS zu tun.

Mit wxPython oder anderen GUI-Toolkits erstellst du Programmoberflächen, die du als Anwendungen (Applications) wie z.B. OpenOffice.org oder Microsoft Word kennst.

Jetzt stellen sich die Fragen: Was willst du machen? Kannst du dein Problem anders erklären?

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Anfanger
User
Beiträge: 4
Registriert: Dienstag 27. Februar 2007, 21:15

Re: Formular in python ?

Beitragvon Anfanger » Mittwoch 28. Februar 2007, 19:41

Formulare, wie du oben eines aufgezeigt hast, sind in HTML (Hypertext Markup Language) geschrieben und werden von Browsern wie z.B. dem Mozilla Firefox oder dem Internet Explorer interpretiert und angezeigt.


Ahh, gerold, ich weiss, dass dieses Code in HTML geschrieben ist ;]

Mit wxPython oder anderen GUI-Toolkits erstellst du Programmoberflächen, die du als Anwendungen (Applications) wie z.B. OpenOffice.org oder Microsoft Word kennst.


ja, ich weiss ....

@gerold, ich sehe, dass du mich schlecht verstehst (sicher deshalb, dass mein Deutsch nicht so gut ist und ich habe eine Probleme mit der Beschreibung, was ich eigentlich machen will);]

@Leonidas: ja, ich mochte eigentlich dieses machen, also:
"eine GUI in der man ein Passwortfeld angeben kann, dass dann per POST an einen Server geschickt wird?"

Ist das in python moglich ??

Anfanger ;]

Btw. Ich grusse euch auch ;]
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Formular in python ?

Beitragvon Leonidas » Mittwoch 28. Februar 2007, 19:51

Anfanger hat geschrieben:@Leonidas: ja, ich mochte eigentlich dieses machen, also:
"eine GUI in der man ein Passwortfeld angeben kann, dass dann per POST an einen Server geschickt wird?"

Ist das in python moglich ??

Ja, ist es. Nur wenn der Browser Daten per POST sendet, wird vom Server eine Antwort in HTML zurückgegeben. Wo soll diese Antwort angezeigt werden? Oder soll sie gar nicht angezeigt werden?

P.S.: Wenn es dir leichter fällt kannst du auch in Englisch schreiben.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Anfanger
User
Beiträge: 4
Registriert: Dienstag 27. Februar 2007, 21:15

Re: Formular in python ?

Beitragvon Anfanger » Mittwoch 28. Februar 2007, 19:59

Ist das in python moglich ??
Nur wenn der Browser Daten per POST sendet, wird vom Server eine Antwort in HTML zurückgegeben. Wo soll diese Antwort angezeigt werden? Oder soll sie gar nicht angezeigt werden?


Nicht angezeigt ;] Ich mochte nur wissen, ob das in python moglich ist, und mochte euch um einfache Code bieten ;]

Anfanger
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Formular in python ?

Beitragvon gerold » Mittwoch 28. Februar 2007, 20:12

Anfanger hat geschrieben:Nicht angezeigt ;] Ich mochte nur wissen, ob das in python moglich ist, und mochte euch um einfache Code bieten ;]

Hallo Anfanger!

Ja, das ist für Python kein Problem.

Mit dem Modul ``urllib2`` kannst du recht einfach so einen POST-Request absenden.

http://docs.python.org/lib/module-urllib2.html

Mit wxPython bekommst du z.B. so einen Passwort-Dialog:

Code: Alles auswählen

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

import wx

wx.SetDefaultPyEncoding("iso-8859-1")


app = wx.PySimpleApp()
password = wx.GetPasswordFromUser(
    u"Bitte geben Sie das Passwort ein"
)
print password

Mit anderen GUI-Toolkits wird es wahrscheinlich so ähnlich sein.

mfg
Gerold
:-)

Edit: Ich habe das Beispiel ein wenig aufbereitet:

Code: Alles auswählen

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

import wx
import urllib
import urllib2

wx.SetDefaultPyEncoding("iso-8859-1")


app = wx.PySimpleApp()
password = wx.GetPasswordFromUser(
    u"Bitte geben Sie das Passwort ein"
)

response = urllib2.urlopen(
    "http://gerold.bcom.at/",
    urllib.urlencode(
        {
            "username": "EinName",
            "password": password,
        }
    )
)
print response.read()
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Anfanger
User
Beiträge: 4
Registriert: Dienstag 27. Februar 2007, 21:15

Beitragvon Anfanger » Mittwoch 28. Februar 2007, 21:04

@gerold: Vielen Dank ;] Eigentlich um dieses geht mir ;] Nochmal ich danke dir (und Leonidas;]) fur die Hilfe.

Ich sehe, dass dieses Forum die beginnenden Benutzer hilft ;] Wenn ich zB. in dem polnischem oder tschechischem Forum schrieb, das alle sagen mir, damit ich auf Google suche ;[ Ich habe euer Forum durchgeblickt und ich freue mich sehr, weil ich sehe, dass ich hier viele spannende Informationen finde ;]

Super Forum !

Anfanger
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Beitragvon nkoehring » Montag 5. März 2007, 09:30

Anfanger hat geschrieben:@gerold: Vielen Dank ;] Eigentlich um dieses geht mir ;] Nochmal ich danke dir (und Leonidas;]) fur die Hilfe.

Ich sehe, dass dieses Forum die beginnenden Benutzer hilft ;] Wenn ich zB. in dem polnischem oder tschechischem Forum schrieb, das alle sagen mir, damit ich auf Google suche ;[ Ich habe euer Forum durchgeblickt und ich freue mich sehr, weil ich sehe, dass ich hier viele spannende Informationen finde ;]

Super Forum !

Anfanger
Da sieht man mal wieder, was fuer nette Menschen die Pythonprogrammierer in Deutschland doch sind :roll:

Gut das er sich nicht in anderen deutschen Foren (ich nenn mal keine Namen) verirrt hat, wie zB diese GamerForen... also die "Massenforen" allgemein.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

BUG?

Beitragvon nkoehring » Montag 5. März 2007, 14:46

Ist da ein Bug im Forum? Bei diesem Thread wird in der (web-programmierungs-)Liste angezeigt, dass es noch keine Antworten gaebe?? Oder ist das nur so, weil es verschoben ist?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: BUG?

Beitragvon Leonidas » Montag 5. März 2007, 16:56

nkoehring hat geschrieben:Oder ist das nur so, weil es verschoben ist?

Genau, das ist der Grund.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
sysrq1
User
Beiträge: 8
Registriert: Donnerstag 15. März 2007, 17:45

Beitragvon sysrq1 » Donnerstag 15. März 2007, 17:51

Juhu, endlich habe ich ein gutes python-forum gefunden :)

Ich habe im Grunde genau das selbe vor. Ich habe das obere Codebeispiel benutzt, nur leider wird mir dann eine Fehlermeldung zurückgegeben.

Ich möchte von der Seite www.onvista.de aktuelle Börsendaten abrufen und dann automatisch auswerten lassen. Dazu habe am Anfang zu Testzwecken diees kleine python-Programm geschrieben:

Code: Alles auswählen

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

import urllib
import urllib2

response = urllib2.urlopen(
    "http://www.onvista.de/suche.html",
    urllib.urlencode({"SEARCH_VALUE": 'DE000555750'})
)
print response.read()


Dass das post-feld den Namen 'SEARCH_VALUE' trägt, habe ich mit einer kleinen Analyse des HTML-Codes herausgefunden.

Beim ausüfhren erscheint aber leider dieser fehler hir

Code: Alles auswählen

Traceback (most recent call last):
  File "./onvista.py", line 9, in ?
    urllib.urlencode({"SEARCH_VALUE": 'DE000555750'})
  File "/usr/lib/python2.4/urllib2.py", line 130, in urlopen
    return _opener.open(url, data)
  File "/usr/lib/python2.4/urllib2.py", line 364, in open
    response = meth(req, response)
  File "/usr/lib/python2.4/urllib2.py", line 471, in http_response
    response = self.parent.error(
  File "/usr/lib/python2.4/urllib2.py", line 402, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.4/urllib2.py", line 337, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.4/urllib2.py", line 480, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden


Was ist hier schief gelaufen? Was muss ich tun, damit der Code funktioniert?
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Beitragvon apollo13 » Donnerstag 15. März 2007, 18:19

Ich glaub die Seite will nen User-Agent oder so was in die Richtung sehen, im Firefox geht es ganz normal...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Donnerstag 15. März 2007, 18:21

apollo13 hat geschrieben:Ich glaub die Seite will nen User-Agent oder so was in die Richtung sehen

Hi!

Genau das ist es auch:

Code: Alles auswählen

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

import urllib
import urllib2

opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
response = opener.open(
    "http://www.onvista.de/suche.html",
    urllib.urlencode({"SEARCH_VALUE": 'DE000555750'})
)
print response.read()

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
sysrq1
User
Beiträge: 8
Registriert: Donnerstag 15. März 2007, 17:45

Beitragvon sysrq1 » Donnerstag 15. März 2007, 18:40

Schön, der Code funktionert jetzt. Jetzt kann ich darauf aufbauen und die extrahieren.

Vielen Dank !!! :)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder