Fragen zu Python

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.
Rise Against
User
Beiträge: 9
Registriert: Montag 20. Juli 2009, 09:22

So ich bin Neuling hier und jetzt weiß ich nicht wo ich das am besten reinstellen sollte..

Meine erste Frage:

Kann man einen Klick auf einen Button simulieren und diesen dann alle z.B. 10 sekunden wiederholen?

Meine zweite Frage:

Wie kann man ein JavaScript in einem Python Script aufrufen..


ich danke schon jetzt mal für die Antworten

mfg RA
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Kann man einen Klick auf einen Button simulieren und diesen dann alle z.B. 10 sekunden wiederholen?
Gab hier neulich ein TKinter Beispiel dazu. Musst mal n'bisschen suchen. Habs auf die Schnelle nicht gefunden.
Wie kann man ein JavaScript in einem Python Script aufrufen.
Vielleicht mit subprocess. Solltest Du Win oder Mac Nutzer sein, kannst Du Dir das Binary von http://www.stanford.edu/class/cs242/spidermonkey/ downloaden.
Rise Against
User
Beiträge: 9
Registriert: Montag 20. Juli 2009, 09:22

Danke erstmal für die Antwort..

da ich auch noch ein Anfänger in Sachen Python bin kann ich jetzt mit "TKinter" nichts anfangen.. ich werde mal ein bisschen suchen aber wenn jemand konkretere Lösungsvorschläge hätte wäre das super.

zu dem Thema JavaScript einbinden, die Frage hab ich blöd gestellt, eigentlich meinte ich wie man das online einbinden kann , also man hat ne HTML Page, nen JavaScript , PythonQuelltext und wie man dann im Pythonquelletxt eine JavaScript Funktion aufruft.

mfg RA
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Der Python Interpreter ist nun mal keine eierlegende Wollmilchsau and kann nur Python. Wenn Du JavaScript ausführen willst musst Du das mit einem Tool machen, das das kann.
dahaze
User
Beiträge: 75
Registriert: Freitag 13. März 2009, 10:57
Wohnort: im Schwabenland

Dies müsste der Beitrag gewesen sein:
http://www.python-forum.de/topic-18812.html?

Gruß, Simon
Benutzeravatar
snafu
User
Beiträge: 6881
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich könnte da die Engine WebKit empfehlen. Läuft sowohl unter PyGtk als auch unter PyQt. Du machst dir dann ein Fenster, wo du die Seite lädst und dann auf den Kontext zugreifst, um deine Funktionen darauf auszuführen. In diesem Thread habe ich mal sowas in der Art gemacht.

Falls du Buttons von Webseiten meinst, solltest du dir mal mechanize anschauen (eine Suche im Forum sollte genug dazu ausspucken).
Rise Against
User
Beiträge: 9
Registriert: Montag 20. Juli 2009, 09:22

Danke erstmal für die Antworten.

Also ich habs jetzt mal hiermit Probiert:

Code: Alles auswählen

<%
	req.write('<form name = "form" action="/.py?application=camera&action=take_picture_silent" method="post"><br><input name = "button1" class="submitButton" value="Bild manuell aktualisieren" type="submit"></form>')
	req.write('<div style="margin:1em" id="imagebox"><img id="cameraimage" alt="" src="' + controller.link(action='get_image', params={'__':str(time.time())}) + '" /></div>')
	forms = get_document().forms
	form = forms[0]
	form.submit()
%>
Aber irgendwie geht das nicht. Ich bin in Sachen Python absoluter Anfänger also würde ich mich sehr über jede nur erdenkliche Hilfe freuen.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

"Irgendwie geht das nicht" ist eine äußerst schlechte Beschreibung für einen Fehler. Was genau kommt denn für ein Fehler und was ist die erwartete Ausgabe?

Da Du erst angefangen hast: Hast du das offizielle Python-Tutorial schon durchgearbeitet?
Das Leben ist wie ein Tennisball.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@Rise Against:
Dein Code sieht irgendwie nach Webframework aus, das <% %> und req.write() erinnert mich an mod_python.

Ohne nähere Hintergrundinformation bzw. Fehlermeldung kann Dir keiner sagen, was da nicht geht.

Was ist controller, wo kommt get_document() her?

Noch ein Wort zu mod_python:
Um halbwegs standardkonform zu sein, sollte man nicht mit mod_python arbeiten und schon garnicht anfangen, eigene Handler oder psp-Seiten zu schreiben. Der Netzentwicklungszug fährt in Python schon eine Weile in Richtung WSGI, mit mod_python machst Du Dir nur das Leben schwer ;)
Zuletzt geändert von jerch am Montag 20. Juli 2009, 12:22, insgesamt 1-mal geändert.
Rise Against
User
Beiträge: 9
Registriert: Montag 20. Juli 2009, 09:22

Also.

Die erwartete Ausgabe wäre das er das Formular

Code: Alles auswählen

req.write('<form name = "form" action="/.py?application=camera&action=take_picture_silent" method="post"><br><input name = "button1" class="submitButton" value="Bild manuell aktualisieren" type="submit"></form>')
nocheinmal abschickt ohne das man auf den Button klicken muss


Fehlermeldung ist das ein Internal Server Error kommt.
Und im Error lOg steht
PythonHandler index: Traceback (most recent call last):, referer: http://192.168.1.70/.py?application=camera
PythonHandler index: File "c:\\resource\\mod_python\\apache.py", line 395, in HandlerDispatch\n result = object(req), referer: http://192.168.1.70/.py?application=camera
PythonHandler index: File "E:/Data/Web server/htdocs/index.py", line 13, in handler\n result = hrh.handler(req), referer: http://192.168.1.70/.py?application=camera
PythonHandler index: File "J:\\Framework\\HttpRequestHandler.py", line 102, in handler, referer: http://192.168.1.70/.py?application=camera
PythonHandler index: File "J:\\Framework\\WebAppController.py", line 130, in get_content, referer: http://192.168.1.70/.py?application=camera
PythonHandler index: File "J:\\Framework\\WebAppController.py", line 177, in _build_view, referer: http://192.168.1.70/.py?application=camera
PythonHandler index: File "c:\\resource\\mod_python\\psp.py", line 243, in run\n exec code in global_scope, referer: http://192.168.1.70/.py?application=camera
PythonHandler index: File "E:\\Data\\Web server\\htdocs\\Web_Applications\\Camera\\viewer\\picture.psp", line 27, in ?, referer: http://192.168.1.70/.py?application=camera
PythonHandler index: NameError: name 'get_document' is not defined, referer: http://192.168.1.70/.py?application=camera
Ich hoffe das ist was du meinst
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Die Fehlermeldung ist doch eindeutig:

"NameError: name 'get_document' is not defined"

aber abgesehen davon vermute ich, das hier ein Grundlegendes Verständnisproblem vor liegt, was das Zusammenspiel zwischen HTML, JavaScript und Webservern angeht.


Der Webserver benutzt in deinem Fall Python, um HTML Seiten zu generieren. Dabei werden Strings (das rote in deinem Ausschnitt) zum Browser des Benutzers geschickt. Der Webserver hat aber keinen Plan, was in diesen Strings drin steht. Für ihn ist das nur einfacher Text. So etwas wie Formulare und DOM-Bäume gibt es erst, wenn der Text auf Browserseite interpretiert wird. Daher macht der Code in Zeile 5 bis 7 auch keinen Sinn. Das ist JavaScript und hat im Python-Code nix verloren.
Zuletzt geändert von Defnull am Montag 20. Juli 2009, 12:32, insgesamt 1-mal geändert.
Bottle: Micro Web Framework + Development Blog
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Du kannst in der Apache-Config PythonDebug=True setzen, dann erhältst Du einen Traceback bei mod_python für Error 500.

Ich betone es nochmal, falls es hier nicht um Code-Maintenance geht, solltest Du einen Bogen um native mod_python-Spielereien machen.
Zuletzt geändert von jerch am Montag 20. Juli 2009, 12:31, insgesamt 1-mal geändert.
Rise Against
User
Beiträge: 9
Registriert: Montag 20. Juli 2009, 09:22

Das ist kein Apache - Webserver. Es ist ein Webserver der am Handy läuft.

Es geht darum auf die Kamera zuzugreifen ein Foto zuschießen und das alle 5 Minuten zu wiederholen und schließlich dieses Bild am Bildschirm anzuzeigen
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Am Handy? :?: Läuft der auf dem Handy oder wird er von Handies aus bedient (Handy als bevorzugter Client)?

Grundsätzliche Frage wäre hier, wer Server und wer Client ist.
Rise Against
User
Beiträge: 9
Registriert: Montag 20. Juli 2009, 09:22

Also der Webserver läuft am Handy. Und am Pc rufe ich mittels Firefox die Daten vom Webserver ab. Eine Verbindung zwischen den beiden besteht über ein Ad-Hoc Netzwerk.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Am Handy? Wenn Du den Fernseher einschaltest und einen Film schaust, läuft der dann auch am Fernseher?

Wie auch immer, Dein Server, egal wo der jetzt zu verorten ist, ist ein Apache mit mod_python, zumindest sagt das die Fehlermeldung.

Zu Deiner Fragestellung:
Falls es den Requesthandler für die Bilderzeugung schon gibt, könntest Du einfach das Formular mittels Javascript erneut abschicken lassen. Das passiert dann aber nicht in Python sondern clientseitig im Browser.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Die eigentliche Frage ist eigentlich: Was magst du eigentlich machen? Wie Defnull vermute ich hier ein massives Verstaendnisproblem und da sollten wir erstmal klarstellen welches Problem ueberhaupt geloest werden soll.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Rise Against
User
Beiträge: 9
Registriert: Montag 20. Juli 2009, 09:22

Also ich will, das wenn die Seite aufgerufen wird, das Forumlar alle 10 sek wieder neu verschickt wird, also entweder indem man auf den Submit Button klickt oder das das Formular einfach so verschickt wird über eine Funktion
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Die Beschreibung sollte noch ein wenig höher ansetzen:
- Was willst du mit dem Programm (in seiner Gesamtheit) machen?
- Muss es unbedingt ein Webserver sein oder nutzt du diesen einfach? Wäre ein eigener Client bzw. Server nicht besser?
Das Leben ist wie ein Tennisball.
Rise Against
User
Beiträge: 9
Registriert: Montag 20. Juli 2009, 09:22

Das Programm sollte über den Webbrowser abrufbar sein. Es sollte per Buttonklick mit dem Handy ein Bild machen und anzeigen und das am besten alle 10 sekunden aktualisieren.
Antworten