Schaltfläche

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.
mutsch
User
Beiträge: 13
Registriert: Mittwoch 9. August 2006, 19:33

Ich habe folgendes Problemchen.
Ich erzeuge einen Buttpn

Code: Alles auswählen

 print"""<button type="button" name="schalter" onclick="????" >XX</button>"""
Ich möchte das beim Event onclick ein Python Programm ausgeführt wird.
Klingt einfach, finde aber bis jetzt keine Lösung.
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Hallo mutsch !
Wie gehts Dir den so ? Schöner Tag heut nicht war !
Ein bisschen Regen ein bisschen Schnee! Ich habe soger Steine fallen sehen du auch ?
Also bis dann
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mutsch hat geschrieben:Ich möchte das beim Event onclick ein Python Programm ausgeführt wird.
Hi Mutsch!

Das geht nicht. Du kannst im Browser nur Code in einer Sprache ausführen, die in den Browser integriert ist. --> Nimm JavaScript.

Du kannst dir aber Daten von einem Server holen (per JavaScript). Diese Daten kann dir dann ein Python-Programm zur Verfügung stellen.

Siehe auch: http://www.python-forum.de/topic-6780.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
KC25m
User
Beiträge: 65
Registriert: Freitag 14. Juli 2006, 12:11
Wohnort: Kassel
Kontaktdaten:

Also ein paar wenig mehr infos wären schon nicht schlecht , da du in der bash eh kein onClick hast ...

Schreib mal um was es überhaupt geht und wie dein Text dazu kommt sich als Link zu fühlen.

Danke und Gruß der KC
mutsch
User
Beiträge: 13
Registriert: Mittwoch 9. August 2006, 19:33

Wies geht gut, regen tuts auch noch ein bischen.
Ich weis das es bei meinen Problemchen sich nicht um ein reines Pythonproblem handelt. Hoffe aber trotzdem das es jemand gibt
der mir sagen kann wie ich meinen "HTML Button" dazu bringe ein Python programm aufzu rufen.

Dankeschön im voraus!!!!
KC25m
User
Beiträge: 65
Registriert: Freitag 14. Juli 2006, 12:11
Wohnort: Kassel
Kontaktdaten:

Also noch mal , wo läuft dein HTML Button in ein PyGui ?
oder direkt im Browser ?
Wenn direkt im Browser dann kannst du über umwege PyThonScripts aufrufen oder halt wenn der Server es unterstützt auch direkt.

Meistens is aber nur PHP / Perl installiert und das kannst du nutzen um dein PyScript aufzurufen.
mutsch
User
Beiträge: 13
Registriert: Mittwoch 9. August 2006, 19:33

Code: Alles auswählen

print"""<a href="http://harrerhof/cgi-bin/input.py"><button type="button" name="schalter" >-></button></a>"""
Ich habs mal so versucht..
Danke für eure Tips.
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Hallo mutsch !
Ich wollte damit sagen, dass ein paar Infos gefaellt haben.

Soviel ich aber weiss, geht dein vorhaben mit Python nicht.
KC25m
User
Beiträge: 65
Registriert: Freitag 14. Juli 2006, 12:11
Wohnort: Kassel
Kontaktdaten:

PyThon ist keine serverseitige sprache so wie PHP oder Perl ...
Solange du auf Serverseite keine Python Plugin hast kannste das komplett knicken !

Du kannst allerdings dir unter PHP ein script schreiben was ein Python Script aufruft und wartet bis es beendet ist , dir dann das was das programm zurück gibt zurückgibt ... *ompf*
"Was ein Deutsch :P "

So kannst du es probieren ohne ende und nun zum dritten mal hoffe kanst lesen was wir schreiben .

Wo soll es statfinden , was soll passieren was hast du für infos für uns ?
Weil geh mal zum Autoteilhändeler und sag du brauchst nen Kolben für deinen Motor ... ohne infos wird der dir auch nicht helfe.


DANKE
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

KC25m hat geschrieben:PyThon ist keine serverseitige sprache so wie PHP oder Perl ... Solange du auf Serverseite keine Python Plugin hast kannste das komplett knicken!
Hi KC25m! :shock: :? ...sag mal -- geht's dir noch gut? :lol:

Such mal hier im Forum nach CGI, Zope, Django, WSGI, CherryPy, Colubrid, mod_python, Serverlet, PSP,...

Das sind alles Themen, bei denen es sich um Python und Internet (also serverseitig) dreht.

...und was ist ein "Python Plugin"?

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mutsch hat geschrieben:Ich habs mal so versucht..
Danke für eure Tips.
Hi Mutsch!

Dein Fehler war, dass du es so hingestellt hast, als ob du das Python-Skript auf dem Client ausführen wolltest.
Dass du über einen Link, ein Python-Programm, das du in einem CGI-Ordner hinterlegt hast, abrufen kannst, dass weißt du ja bereits.

mfg
Gerold
:-)
Zuletzt geändert von gerold am Montag 14. August 2006, 20:52, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
KC25m
User
Beiträge: 65
Registriert: Freitag 14. Juli 2006, 12:11
Wohnort: Kassel
Kontaktdaten:

isch weiss plugin is da falsche wort ...
gibt aber inzwischen so weit ich weiss für diverse HTTP server erweiterungen für Python so das man dort direkt PyScripte laufen lassen kann ... oder man schreibt sich selber nen HTTP Server :P


Sorry wenn mein Ton daneben gegangen is ,
is halt net mein tag heute ... zuviel stress.

Kann nur sagen Schuldigung !
mutsch
User
Beiträge: 13
Registriert: Mittwoch 9. August 2006, 19:33

Leute , vielen Dank für eure Hilfe!!!!
Ich bin wie ihr sicher schon gemerkt habt ein ziemlicher Anfänger!!
Werd mir noch ein bissl Docu reinziehen und dann euch wieder um Hilfe bitten.

Grüsse

Mutsch
KC25m
User
Beiträge: 65
Registriert: Freitag 14. Juli 2006, 12:11
Wohnort: Kassel
Kontaktdaten:

Das ist kein Problem , nur soltest du auch deine Problem ein wenig mit infos ausschmücken dann fählt es leichter dir zu erklären was möglich ist oder wie es gemacht wird.

Ohne infos können wir leider nicht weiter helfen , sorry wegen der dummen anmach!
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

KC25m hat geschrieben:isch weiss plugin is da falsche wort ...
gibt aber inzwischen so weit ich weiss für diverse HTTP server erweiterungen für Python so das man dort direkt PyScripte laufen lassen kann ... oder man schreibt sich selber nen HTTP Server :P
Perl läuft auch nicht anders als Python, im einfachsten Fall als CGI.
KC25m
User
Beiträge: 65
Registriert: Freitag 14. Juli 2006, 12:11
Wohnort: Kassel
Kontaktdaten:

jepp stimmt schon , aber welcher ISP hat schon Python so eingerichtet das der Server es als Scriptsprache zuläst für internetseiten ?
In normal fall kannst du Jede sprache nehmen um HTML-Ausgaben zu machen , nur ohne nötige verbindung zum server is da nichts zu machen.

Bin selberbei Serverdrom und dort kann ich immer noch kein PyScripte einbinden obwohl Py auf dem server vorhanden is.
Solange dem HTTP-Server nicht zugeteilt wird was Py is macht er nichts.

Wenn ich mich irre dann mal her mit der Info , wäre gut zu wissen wie es genau geht :P

Weil habe ne Clanseite wo ich dann halt kein PHP Scripte mehr schreiben muss um die Game Server abzufragen ...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

KC25m hat geschrieben:jepp stimmt schon , aber welcher ISP hat schon Python so eingerichtet das der Server es als Scriptsprache zuläst für internetseiten
Hi KC25m!

Normalerweise kannst du das dem Apachen selber mitteilen. Außer du hat einen total abgespeckten Webspace. Dann würde ich aber den Provider wechseln.

- http://www.python-forum.de/post-36947.html#36947
- http://www.python-forum.de/post-33424.html#33424
- http://www.python-forum.de/post-33426.html#33426
- [wiki]Python Webspace[/wiki]

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
mutsch
User
Beiträge: 13
Registriert: Mittwoch 9. August 2006, 19:33

Also ich glaube es ist Zeit euch zu sagen was ich machen will.
Ich möchte für eine in VB geschriebene Software ein Webinterface machen.
Bisher habe ich hauptsächlich in VB programmiert, Java und C# kann ich auch ein bissl.
Auf dem Rechner auf dem meine VB-Software läuft installire ich den Apache.
Auf diesem läuft dann mein PYthon script.
Bis jetzt habe ich das Interface zwischen meiner Software dem Pythonscript erstzellt.
Es steht und funktioniert. :-)
d.h. ich kann Daten lesen und schreiben.

Meine Pythonscript soll mir eine Html Oberfläche generieren.
Welche mir die Daten anzeigen soll bzw. Eingabefelder zur Verfügung stellen soll.

Meine Momentanes Hauptproblem ist:
Ich will so wie ich es aus Java,C#,VB gewöhnt bin auf einen Button drücken, und dann soll das Pythonscript den Html Code genieren.
Der Button ist ein HTML-Objekt
http://de.selfhtml.org/html/formulare/klickbuttons.htm
Ich habe bei dem Link gelesen das es am vernünftigsten wäre mittels Java script Werte zu setzen bzw. funktionen zu starten.

Ich will aber eine Funktion meines PYthon Scripts starten. Wie mach ich das über JavaScript...

Jungs ich versteh nur mehr Bahnhof :-)

Grüsse

Mutsch
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mutsch hat geschrieben:Ich möchte für eine in VB geschriebene Software ein Webinterface machen.
[...]
Auf dem Rechner auf dem meine VB-Software läuft installire ich den Apache. Auf diesem läuft dann mein PYthon script.
[...]
Meine Pythonscript soll mir eine Html Oberfläche generieren.
Welche mir die Daten anzeigen soll bzw. Eingabefelder zur Verfügung stellen soll.
Hi Mutsch!

Dir kann geholfen werden. :D

Das was du für den Anfang brauchst, ist CGI -- schlichtes und einfaches CGI.

CGI:
- http://www.python-forum.de/post-42514.html#42514
- http://www.python-forum.de/post-33424.html#33424
- http://www.python-forum.de/post-42497.html#42497

Und jetzt ein paar Worte zur Strategie:
Dein Webinterface ist eine Mischung aus HTML-Dateien die für statische Inhalte zuständig sind, und Python-Dateien die für dynamische Inhalte zuständig sind. Beide Dateitypen kannst du über einen Webserver wie den Apachen oder den einfachen CGI-Webserver von Jens (siehe unter den oben genannten Links) an einen Browser schicken.

Für den Anfang, ist es wohl besser, wenn du dich auf den "kleinen" Webserver von Jens konzentrierst. Das ist ein kleines Python-Programm, das an einem TCP-Port horcht und Anfragen eines Browsers beantwortet. Der Vorteil: dieses kleine Programm muss nicht so umständlich wie der Apache installiert werden und erfüllt aber trotzdem seinen Zweck.

Über ein HTML-Formular, oder über Parameter, die du an den URL anhängst, kannst du Daten an ein Python-Programm, das als CGI-Programm läuft, weitergeben.

Beispiel für ein HTML-Formular:

Code: Alles auswählen

<form action="pythondatei.py">
  Vorname: <input type="text" name="vorname" /><br />
  Nachname: <input type="text" name="nachname" /><br />
  <input type="submit" value="Hole Daten..." />
</form>
Beispiel für einen URL mit Parametern:

Code: Alles auswählen

http://localhost:8888/cgi-bin/pythondatei.py?vorname=Gerold&nachname=Penz
Die Python-Datei wird vom Webserver aufgerufen. Die Python-Datei liefert wieder gültigen HTML-Code zurück, der vom Webserver wieder an den Browser zurück gegeben wird.

Das ist, für den Anfang, so ziemlich die einfachste Möglichkeit, Python für Web-Anwendungen zu verwenden.

Sollte später einmal eine größere Webanwendung daraus werden, dann empfehle ich dir Zope als Web-Applicationserver. Damit hast du dann alles im Griff, was man so für mittlere oder größere Webanwendungen brauchen kann. Z.B.: Benutzerauthentifizierung, Berechigungsverwaltung, Sessionverwaltung, Datenbankzugriff, TAL als Vorlagensprache um schneller und einfacher, größere Projekte zu erstellen, usw.

Aber jetzt zurück zu den oben genannten Links...

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Reden wir mal vom einfachsten Fall: CGI. Im HTML-Form ist die URL zu einer Python-Datei angegeben. Wenn Du auf den Submit-Button drückst, dann werden die Daten aus dem Formular an den Webserver geschickt und der startet das Programm aus der URL -- auf dem *Server* -- und übergibt die Form-Daten gemäss der CGI Schnittstelle. In Python kommst Du da mit dem `cgi` Modul recht bequem dran.

Als Antwort kann das Skript jetzt wieder Daten zum Server schicken. Wenn Du nach dem Druck auf den Button im Browser wieder eine HTML-Seite sehen möchtest, dann muss das diese HTML-Seite sein.

Dein Skript auf dem Server müsste dann also Verbindung mit der VB Anwendung aufnehmen entsprechend der Formulardaten irgendwas machen und die Antwort zurück an den Browser schicken.

Die HTML Antwort kann man als ``print`` Anweisungen in den Python-Quelltext schreiben, aber sauberer ist es wohl eines der vielen Vorlagensysteme, wie `kid` oder `Cheetah` zu benutzen. Dann kann man die Webseiten, also die "GUI-Elemente" unabhängig vom Programm bearbeiten.

Dann gibt's noch AJAX, also die Möglichkeit per JavaScript Daten vom Server abzufragen und die Webseite im Browser entsprechend zu modifizieren. In dem Fall wird Dein Python-Programm genauso aufgerufen wie vorher, nur dass die Antwort nicht direkt im Browser dargestellt wird, sondern vom JavaScript-Programm entgegengenommen wird. Beide Ansätze lassen sich natürlich auch kombinieren.

Auf jeden Fall denke ich man sollte halbwegs Python können bevor man sich an GUI- oder Webprogrammierung macht, weil man sonst mit zwei Problemen gleichzeitig kämpft: Eine neue Sprache und die Komplexität von GUI-/Webprogrammierung.
Antworten