Python in webseiten

Mr. Poe

Lt. Commander
Registriert
Juli 2010
Beiträge
1.831
hallo,

ich möchte eine leine webseite programmieren.
diese seite soll auf meinem raspberry pi laufen.
zweck dieser seite soll sein, über mein tablet und dieser webseite die gpio pins des rpi zu steuern.

jetzt habe ich mir gedacht, das mit dieser seite eine socket verbindung aufgebaut wird und die eingabe werte (von javascript, es wird mit drag&drop elementen gearbeitet) auf den rpi übertragen und ausgewertet werden.

wie kann ich jetzt die werte von js an python übergeben?
bzw. wie kann ich ein python script in eine html seite einbinden?

oder kann ich auch direkt von js eine socket verbindung zu python aufbauen?
 
Schonmal Django probiert? das ist ein Python basiertes Web-Framework
 
Weil python einfach ist und ich nicht der ober pro programmierer bin?
Das wird jetzt mein erstes richtiges sinnvolles projekt, das ich mache...


Kennt jemand von euch jsocket?
 
Wenn Python einfach wäre, dann hättest du die Frage nicht gestellt, wie du es mit HTML kombinierst. Nimm PHP, da stellt sich die Frage nicht ernsthaft.
 
Daaron schrieb:
Wenn Python einfach wäre, dann hättest du die Frage nicht gestellt, wie du es mit HTML kombinierst. Nimm PHP, da stellt sich die Frage nicht ernsthaft.

Das eine hat doch nichts mit dem anderen zu tun. Einem Webserver muss man üblicherweise auch erst Support für PHP beibringen. Das ist mit Python nicht per se anders oder schwieriger. Außerdem: wenn man Webseiten unbedingt mit Python programmieren möchte, und sei es nur weil man nur diese Programmiersprache beherrscht, hilft PHP nicht weiter.


@Amarok2:
Schau Dir Django an: https://www.djangoproject.com/
 
soares schrieb:
Einem Webserver muss man üblicherweise auch erst Support für PHP beibringen. Das ist mit Python nicht per se anders oder schwieriger.
Den Webserver, insbesondere Apache, der keine automatisch funktionsfähige PHP-Laufzeit bietet, zeig mir erst einmal. Wenigstens mod_php läuft als Nobrainer immer mit.
Für Python (oder andere Sprachen wie Perl) musst du immer erst eine wirklich hässliche CGI-Konfiguration aufziehen. Das ist signifikant aufwändiger.

Der TE will das Ding auf der heimischen Raspberry laufen lassen. Das heißt, er muss den Server selbst konfigurieren und er scheint sich mit der Materie eben NICHT auszukennen. Eine CGI-Konfiguration für Python ist hier weit außerhalb des Rahmens, verglichen mit dem Nobrainer "apt-get install php5 libapache2-mod-php5".


Klar.... Immer erstmal 10MB Framework laden, egal ob das Projekt am Ende ein besseres Hello World ist... Ist das bei Python wie bei Ruby? Ohne Framework kriegt man ohne 10 Semester Studium nicht einmal ein einfaches Echo raus?
 
Es macht in Python einfach wenig Sinn ohne Framework zu entwickeln. Klar kann man auch WSGI-Apps ohne Framework basteln, aber das ist doch viel zu aufwändig. Nur weil PHP da so ein verkorkstes System eingeführt hat, muss man das nicht auch in anderen Sprachen einführen.

Ich würde auch von Django abraten (es ist wirklich sehr umfangreich) und lieber auf Micro-Webframeworks wie z.B. Flask setzen. Bei Flask kann man z.B. mit SQLAlchemy, WTForms etc. auch ein ORM und Form-Behandlung nachrüsten, sodass man Django-ähnliche Funktionalität hat – nur eben flexibler.

Folgendes Beispiel ist eine einfache Webanwendung in Python:

Code:
from flask import Flask

app = Flask('meinetolleapp')

@app.route('/')
def index():
    return "Das ist die Index-Seite"

@app.route('/test')
def test():
    # rendert das template 'template.html'.
    # Mit {{foo}} und {{bar}} kann im Template auf die Variablen zugegriffen werden.
    return render_template('template.html', foo='foo', bar=123)

if __name__ == '__main__':
    app.debug = True
    app.run()

Das ganze in einer Datei speichern und ausführen, fertig. Flask benutzt den Webserver aus Python (oder bringt vllt. sogar nen eigenen mit, weiß ich nicht) und läuft einfach. Kein Apache, nichts. Fürs Development richtig einfach. Und selbst wenn man das auf dem Pi mal "produktiv" laufen lässt, reicht der eingebaute Server bei Weitem aus. Man erwartet ja keine 500 gleichzeitigen Zugriffe nur um GPIO-Pins zu steuern.

Wenn der TE schon Python kann, ist es auf alle Fälle einfacher dabei zu bleiben anstatt PHP erst zu lernen. Nur weil du so ein PHP-Jünger bist musst du nicht allen Leuten deine Meinung raufdrücken.
 
Zuletzt bearbeitet:
Daaron schrieb:
Den Webserver, insbesondere Apache, der keine automatisch funktionsfähige PHP-Laufzeit bietet, zeig mir erst einmal. Wenigstens mod_php läuft als Nobrainer immer mit.
Für Python (oder andere Sprachen wie Perl) musst du immer erst eine wirklich hässliche CGI-Konfiguration aufziehen. Das ist signifikant aufwändiger.

Es schon länger her, aber ich musste PHP extra mitinstallieren. Gibst Du unten ja auch an. Wie das wohl mit Python aussieht?

Daaron schrieb:
Der TE will das Ding auf der heimischen Raspberry laufen lassen. Das heißt, er muss den Server selbst konfigurieren und er scheint sich mit der Materie eben NICHT auszukennen. Eine CGI-Konfiguration für Python ist hier weit außerhalb des Rahmens, verglichen mit dem Nobrainer "apt-get install php5 libapache2-mod-php5".


Deswegen der Verweis auf Django. Hm. Was machen andere denn so? Oh, hier nutzt jemand Python zur Automation auf dem Raspberry:

http://internetofthings-pune.blogspot.de/2013/10/home-automation-with-raspberrypi-python.html

Daaron schrieb:
Klar.... Immer erstmal 10MB Framework laden, egal ob das Projekt am Ende ein besseres Hello World ist... Ist das bei Python wie bei Ruby? Ohne Framework kriegt man ohne 10 Semester Studium nicht einmal ein einfaches Echo raus?

Warum immer so krawallig?
 
Zurück
Oben