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
Weil habe ne Clanseite wo ich dann halt kein PHP Scripte mehr schreiben muss um die Game Server abzufragen ...
Schaltfläche
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi KC25m!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
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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
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
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Mutsch!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.
Dir kann geholfen werden.
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>
Code: Alles auswählen
http://localhost:8888/cgi-bin/pythondatei.py?vorname=Gerold&nachname=Penz
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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.
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.
Auf die Idee Cheetah zu verwenden bin ich selbst schon gekommen.BlackJack hat geschrieben: 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.
Leider happerts da schon bei der Installation.
Mein Betriebssytem ist WIN XP.
Habe alles so gemacht wie hier beschrieben.
http://www.devshed.com/c/a/Python/Templ ... h-Cheetah/
Windows users will likely want to take a few extra steps when installing Cheetah. The first is to rename the file cheetah since it does not come with any extension to identify it as a Python file. It's located in the Scripts directory of your Python installation. Simply rename it cheetah.py, and if you are dying to lose the extension, create a file in the same directory called cheetah.bat:
cheetah.py %*
Next, it is recommended that you obtain a file named _namemapper.pyd from SourceForge. It speeds up Cheetah on Windows:
http://prdownloads.sourceforge.net/chee ... d?download
Place the file in the Lib/site-packages/Cheetah directory of your Python installation.
Hab ich alles gemacht mein Apache mekert aber:
C:\\Python24\\lib\\site-packages\\Cheetah\\Compiler.py:1507: UserWarning: \r, referer: http://harrerhof/
[Mon Aug 14 22:02:46 2006] [error] [client 192.168.2.2] You don't have the C version of NameMapper installed! I'm disabling Cheetah's useStackFrames option as it is painfully slow with the Python version of NameMapper. You should get a copy of Cheetah with the compiled C version of NameMapper.\r, referer: http://harrerhof/
[Mon Aug 14 22:02:46 2006] [error] [client 192.168.2.2] warnings.warn(\r, referer: http://harrerhof/
Was hab ich falsch gemacht?
Apache will ein kompiliertes pyc File so wie ichs verstanden habe.
In der Beschreibung ist von einem pyd File die Rede.
Das hab ich jetzt auch gefunden
http://de.wikipedia.org/wiki/Liste_der_Dateiendungen/P
Grüsse
Mutsch
Hallo Gerold
Hab deinen Vorschlag zu Herzen genommen und mal versucht was du geschrieben hast.
Ich hoff ich werd nicht langsam nervig.. aber
Die Paramarameter waren im Pfad enthalten.....
Schön
Ihrgendwie muss ich ja die Parameter im Path auswerten
Für das hab ich mal ein bischen gesucht und das gefunden.
http://abop-german.berlios.de/read/sys-module.html
# das Skript beginnt hier
if len(sys.argv) < 2:
print 'Es wurden keine Parameter uebergeben.'
sys.exit()
Leider war bei mir die len(sys.argv) nur = 1
und print sys.argv hat folgendes ergeben...
C:\Programme\Apache Group\Apache2\cgi-bin\pythondatei.py
Hab deinen Vorschlag zu Herzen genommen und mal versucht was du geschrieben hast.
Ich hoff ich werd nicht langsam nervig.. aber
Die Paramarameter waren im Pfad enthalten.....
Meine Pythondatei wurde aufgerufen.
Schön
Ihrgendwie muss ich ja die Parameter im Path auswerten
Für das hab ich mal ein bischen gesucht und das gefunden.
http://abop-german.berlios.de/read/sys-module.html
# das Skript beginnt hier
if len(sys.argv) < 2:
print 'Es wurden keine Parameter uebergeben.'
sys.exit()
Leider war bei mir die len(sys.argv) nur = 1
und print sys.argv hat folgendes ergeben...
C:\Programme\Apache Group\Apache2\cgi-bin\pythondatei.py
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Manchmal denke ich, dass ich mir die Arbeit vergeblich mache.mutsch hat geschrieben:Hallo leute habt ihr meine einträge nicht gelesen. Möchte nicht ungeduldig sein.
Ich suche im Forum und sonst wo im Internet nach erklärenden Seiten, stelle die gefundenen Links in meinen Beiträgen zur Verfügung und niemand liest sich die Seiten, auf die ich gezielt verweise, durch.
Folge den Links, die ich zu diesem Thema bereits heraus gesucht habe. Folge auch den Links, die in den Beiträgen und Seiten stehen, auf die ich verweise. Lies dir die Seiten auch durch, auf die verwiesen wird. Lies die Themen durch, auf die verwiesen wird. ZUMINDEST aber die restlichen Beiträge, ab den Beiträgen auf die ich verwiesen habe.
Noch ein Versuch:
- http://www.python-forum.de/post-36947.html#36947
- http://www.python.org/doc/current/lib/module-cgi.html
- http://www.python-forum.de/post-42497.html#42497
- http://www.python-forum.de/post-33424.html#33424
Ich habe es jetzt noch einfacher gemacht und einen direkten Link auf ein wichtiges Thema mit rein gepackt.
Die Mühe wirst du dir schon machen müssen und den Links folgen...
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.
Yes Sir....
Ich werde alles durchlesen versprochen!!!!
Und dann nochmal versuchen meine Problem in griff zu kriegen.
Werd mich übrigens wieder melden wenns funktioniert.
Übrigend Gerold danke, für deine Hilfe + Gedult!!!!!
Wünsche schönes WE!!!!
Ich werde alles durchlesen versprochen!!!!
Und dann nochmal versuchen meine Problem in griff zu kriegen.
Werd mich übrigens wieder melden wenns funktioniert.
Übrigend Gerold danke, für deine Hilfe + Gedult!!!!!
Wünsche schönes WE!!!!
Hab mein Problemchen lösen können!!!!
[/quote]
Code: Alles auswählen
import cgi
import cgitb; cgitb.enable()
form = cgi.FieldStorage()
if form.has_key('variable'):
variable=form['variable'].value
print "Content-Type: text/html\n"
print
print """<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<HTML>
<head>
</head>
<BODY>
"""
for value in range(0,10):
print """
<form method="post">
<input type="hidden" name="variable" value=
"""
print value
print""">
<input type="submit" name="submit" value=
"""
print value
print""">
</form>
"""
print """
</BODY>
</HTML>
"""
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wohlgeformtes XML ist es auch nicht, und für XHTML hätte man theoretisch auch den Content-Type application/xhtml+xml verwenden können.BlackJack hat geschrieben:Gültiges XHTML ist das aber nicht...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Mutsch!mutsch hat geschrieben:Hab mein Problemchen lösen können!!!!
Das freut mich.
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.