Wie: HTML-Formular -> Python Prog auf Server?

Django, Flask, Bottle, WSGI, CGI…
Benutzeravatar
c0da
User
Beiträge: 3
Registriert: Freitag 17. März 2017, 14:47

Wie: HTML-Formular -> Python Prog auf Server?

Beitragvon c0da » Freitag 17. März 2017, 15:03

Hallo zusammen,

ich möchte gerne wissen, wie man Daten (z.B. einen Zahlenwert) an ein serverseitiges Phythonscript übergibt,
so, wie man es mit GET und POST aus PHP kennt.

Ich interessiere mich nicht für Frameworks oder irgendwelche optimalen aber hochkomplizierten Lösungen, sondern
möchte ganz einfach wissen, wie der Python-Code aussehen muss, um einen Wert auszulesen, den ich Beispielsweise mit HTML

Code: Alles auswählen

<form action="pythonscript.py" method="post">
Zahl: <input type="text" name="zahl" />
</form>


in die Variabele zahlaufgenommen habe.
Ich möchte den Inhalt in mein Pythonscript in die Variabele X speichern.
Wie muss der Code dazu lauten?

Danke!
Benutzeravatar
/me
User
Beiträge: 3106
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Re: Wie: HTML-Formular -> Python Prog auf Server?

Beitragvon /me » Freitag 17. März 2017, 15:22

Um dir helfen zu können müssten wir etwas mehr über deinen aktuellen Ansatz wissen. Verwendest du http.server oder wie lieferst du die HTML-Dateien aus?
Benutzeravatar
c0da
User
Beiträge: 3
Registriert: Freitag 17. März 2017, 14:47

Re: Wie: HTML-Formular -> Python Prog auf Server?

Beitragvon c0da » Freitag 17. März 2017, 15:48

Die HTML Datei liegt auf dem Server, gleich neben dem Python Script.

Die Seite rufe ich mit meinem Brower mit http://www.meineseiteoderso.de auf, dann erscheint das HTML
Eingabeformular.

Ich tippe eine Zahl ein und per "Absenden" will ich diese Zahl an mein Python Script senden, welches diese
Zahl dann weiter verarbeitet.
Benutzeravatar
BlackJack
Moderator
Beiträge: 31649
Registriert: Dienstag 25. Januar 2005, 23:29
Wohnort: Berlin
Kontaktdaten:

Re: Wie: HTML-Formular -> Python Prog auf Server?

Beitragvon BlackJack » Freitag 17. März 2017, 18:22

@c0da: Dann interessierst Du Dich letztendlich doch für ein Webrahmenwerk. Da Du das aber am Anfang schon ausgeschlossen hast: Möchtest Du das nicht vielleicht doch in PHP lösen? Das ist in PHP und Python letztlich das gleiche, nur das für PHP in der Regel alles schon automagisch vorkonfiguriert ist und Du nichts mehr tun oder wissen musst. Denn auch für PHP braucht es im Webserver ein Modul das dem PHP beibringt und Einstellungen die sagen was als PHP ausgeführt werden soll.

Genauso braucht man für Python ein Modul im Webserver (`mod_wsgi`) und Einstellungen die dem Webserver sagen wo der Einstiegspunkt in die Webanwendung ist. Hier unterscheidet sich das Konzept zwischen PHP und Python dann allerdings auch schon, denn in Python passiert das nicht auf Dateibasis, sondern das Routing von URLs auf Funktionen die dann letztendlich Code ausführen wenn die URL aufgerufen wird, findet in Python-Code statt. Das kann man sich selbst programmieren, aber in der Regel wird man mindestens ein Mikrorahmenwerk wie `bottle` oder `flask` verwenden. Wobei `bottle` beispielsweise nur eine einzige Python-Datei ist, also das ist wirklich ein sehr kleines Rahmenwerk, das IMHO auch mehr Arbeit abnimmt als es durch Lernaufwand macht, denn es ist wirklich nicht kompliziert.

Schau Dir einfach mal die Bottle-Dokumentation, und dort das „Hallo, Welt!“-Beispiel an.

Neben der HTML-Datei mit dem Formular möchte man Programme übrigens nicht liegen haben. Eine kleine Fehlkonfiguration und die Benutzer können den Quelltext herunterladen.
“A lesson I've learned over and over is that computer programs live far longer than you expect. It pays to do 'em better at the beginning, 'cause you're likely to live with them quite a while.” — Cameron Laird in c.l.p
Benutzeravatar
c0da
User
Beiträge: 3
Registriert: Freitag 17. März 2017, 14:47

Re: Wie: HTML-Formular -> Python Prog auf Server?

Beitragvon c0da » Samstag 18. März 2017, 12:09

Also, zunächst erst einmal danke für die Antwort. Sie ist sehr ausführlich und ich danke Dir, dass Du Deine Zeit und Dein Wissen zur Verfügung gestellt hast, mir zu antworten.

Dennoch bin ich nicht gerade wenig darüber entsetzt, dass niemand in der Lage (oder willens?) ist, meine Frage klar und einfach (am besten noch mit einer oder zwei Zeilen Code) zu beantworten! Das kann doch nicht so schwer sein!

Mir fehlen darüber einfach die Worte *Kopfschüttel*
Benutzeravatar
BlackJack
Moderator
Beiträge: 31649
Registriert: Dienstag 25. Januar 2005, 23:29
Wohnort: Berlin
Kontaktdaten:

Re: Wie: HTML-Formular -> Python Prog auf Server?

Beitragvon BlackJack » Samstag 18. März 2017, 12:40

@c0da: Du bist anscheinend von der falschen Annahme ausgegangen, das es in anderen, allgemeinen Programmierprachen, genau so funktionieren muss wie in PHP, eine Sprache die doch recht speziell auf diesen Einsatzzweck ausgerichtet ist, und die in der Regel schon nach dem installieren entsprechend in den Webserver integriert ist, und wo es auch nur diesen einen Weg gibt, und wo die Sprache selbst schon das Webrahmenwerk ist. Bei anderen Sprachen muss man mehr Entscheidungen treffen, zum Beispiel *wie* man sie in den Webserver integrieren kann/will, und welches Webrahmenwerk man verwendet. Wenn man sich dafür entscheidet *kein* Webrahmenwerk zu verwenden, dann endet das normalerweise damit das man anfängt sich sein eigenes zu programmieren. Arbeit die man sich sparen kann.

Es sind halt nicht nur ein oder zwei Zeilen Code. Die ein oder zwei Zeilen Code die man Dir hier zeigen könnte, stehen zum Beispiel im Bottle-Tutorial im Abschnitt zum Thema <form>s. Die würden dann aber wahrscheinlich fragen zum Routing aufwerfen, und wenn man die dann beantworten würde, Fragen zum ausführen oder integrieren in den Webserver. Und bevor wir hier nach und nach im Frage/Antwort-Spiel das Tutorial für Dich vorspielen, wäre es einfacher wenn Du es selber von vorne durchgehen würdest. Oder das für Flask.

Und wenn es wirklich nur um ein <form> und ein Skript geht, das die Daten davon verarbeitet, dann ist der Aufwand den etwas anderes als PHP macht, vielleicht auch überzogen, denn die meisten anderen Sprachen sind eher etwas für Webanwendungen. Ich persönlich würde das trotzdem in Python machen, aber auch nur weil ich damit Erfahrung habe und es letztendlich doch relativ einfach zu integrieren ist, wenn man sich mal damit auseinandergesetzt hat.

Was Du vorher vielleicht auch abklären solltest ist in wie weit Dein Webspace-Anbieter Python unterstützt. Alleine das Python auf dem Server installiert ist, bedeutet nicht das man das auch frei für Webanwendungen verwenden kann. Es kann sein das der Anbieter das nur für CGI anbietet — dann kann man es IMHO gleich vergessen, oder das er nur Django als Webrahmenwerk anbietet, oder das er eine bestimmte Form der Integration in den Webserver vorschreibt.
“A lesson I've learned over and over is that computer programs live far longer than you expect. It pays to do 'em better at the beginning, 'cause you're likely to live with them quite a while.” — Cameron Laird in c.l.p
Benutzeravatar
kbr
User
Beiträge: 501
Registriert: Mittwoch 15. Oktober 2008, 09:27
Wohnort: Düsseldorf

Re: Wie: HTML-Formular -> Python Prog auf Server?

Beitragvon kbr » Samstag 18. März 2017, 13:49

c0da hat geschrieben:Mir fehlen darüber einfach die Worte *Kopfschüttel*
Bevor Du jetzt grantig wirst in der Annahme, dass hier niemand Deine 'einfache' Frage auch 'einfach' beantworten kann, solltest Du wissen: PHP ist im Grunde eine Template-Sprache. Was bei deren Nutzung hinter den Kulissen geschieht ist bei den meisten Providern bereits soweit vorkonfiguriert, dass der Anwender fröhlich html und php mischen kann und nur noch die Extension auf .php zu ändern braucht.
Das macht die Einstiegshürde in die php-Programmierung so niedrig - mit entsprechenden Folgen auf dem 'php Programmierer' Markt.

Wenn Du etwas anderes als php verwenden möchtest, *musst* Du Dich mit der Anbindung von ausführbaren Programmen an den verwendeten Webserver befassen. Da hat BlackJack Dir bereits einige Hinweise gegeben. Der Vorteil ist, dass Du lernst, dass es viele mächtige und spannende (und auch deutlich bessere) Möglichkeiten jenseits von php gibt.

Nun liegt es an Dir und Deinen Ansprüchen an Dich.
Benutzeravatar
noisefloor
User
Beiträge: 1576
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Re: Wie: HTML-Formular -> Python Prog auf Server?

Beitragvon noisefloor » Samstag 18. März 2017, 18:13

Hallo,

Dennoch bin ich nicht gerade wenig darüber entsetzt, dass niemand in der Lage (oder willens?) ist, meine Frage klar und einfach (am besten noch mit einer oder zwei Zeilen Code) zu beantworten! Das kann doch nicht so schwer sein!

Ganz einfach: mit den Restriktionen, die du dir selber stellst (im Zuge der Nutzung von Python aber ziemlich kontraproduktiv sind) ist das nicht zu lösen. Selbst, wenn du dein Python-Skript über die CGI-Schnittstelle ausführst - was aber seit min 10 Jahren eigentlich keiner mehr freiwillig macht - musst du deinen Server so konfigurieren, dass er ein Python-Skript via CGI ausführen kann.

Wie man das aber eigentlich macht, ist in den vorherigen Post ausführlich beschrieben. Aber solange du dich weigerst, ein Webframework zu nutzen, wirst du nie nie nie nie nie mit Python und Webprgrammierung glücklich. Ganz einfach, oder?

Gruß, noisefloor

Zurück zu „Webframeworks“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder