Python Newbie mit Newbie Fragen...

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.
Antworten
Frika
User
Beiträge: 2
Registriert: Dienstag 28. Februar 2017, 17:15

Guten Abend miteinander,

kurz zu mir, ich bin Amateur was das progammieren angeht und viel eher in den clientseitigen Sprachen js, html oder auch java zu Hause.
Python wird jetzt ein persönliches Projekt. Ich möchte eine bestimmte Aufgabe mit Hilfe von Python erledigen und zwar eine Websocketverbindung zu einem Broker aufbauen. Das ist das Endziel. Mit javascript klappt es tadellos doch möchte ich eben ein serverseitige Lösung.

Da hätte ich mal ein paar ganz banale Verständniss Fragen.
  • - Kann ich alle .py scripte auch über die Browserzeile aufrufen? Bei mir gehen zb. kleine Beispielscripte die in der Konsole unter Windows laufen, nicht auf meinem Webserver (obwohl Python dort läuft und ich UNIX codiert habe und die entsprechenden chmod Rechte vergeben habe)
    Auch kann ich selbige scripte nicht auf der internen xampp Installation über den localhost anstossen.
    - Ist es überhaupt üblich py scripte über die Browserzeile aufzurufen, ähnlich wie php scripte?
    - Gibt es eine Empfehlung über einen Lehrgang(Tutorialseite) die nicht nur Python in der Konsole erklärt sondern eben eher weborientiert.
    - Da ich nicht Zugriff auf den Server meines Webspace Hoster habe und der etwas zögerlich ist mit Auskünften, wie muss ich mich da ausdrücken um das zu erfahren was für meine Scripte wichtig ist.
    - Gibt es eine Entwicklungsumgebung die für meine Zwecke am geeignesten ist?
    - Gibt es eigentlich so etwas wie ein "pyInfo.py" ähnlich wie phpInfo um die komplette Installation abzubilden?
Hier folgt ein Beispielscript dass über die cmd Konsole ohne Probleme läuft, nicht aber wie schon erwähnt über die Browserzeile, weder localhost noch über den Server meines Websitehosters:

Code: Alles auswählen

#!"/Python36/python.exe"
# -*- coding: UTF-8 -*-

import websocket
import json

def on_open(ws):
    json_data = json.dumps({'ticks':'R_100'})
    ws.send(json_data)

def on_message(ws, message):
    print('ticks update: %s' % message)

if __name__ == "__main__":
    apiUrl = "wss://ws.binaryws.com/websockets/v3?app_id=1089"
    ws = websocket.WebSocketApp(apiUrl, on_message = on_message, on_open = on_open)
    ws.run_forever()
Hoffe dass mein Anliegen nicht zu banal ist. Aber im Moment stochere ich ein bisschen im Dunkeln und weiss auch nicht so recht wo ich eigentlich anfangen soll. Die Scriptsprachen an sich liegen mir schon aber Python ist doch noch eine andere Nummer wie das was ich seither kennengelernt habe.
Vielen Dank und Grüße
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Frika: Die erste Zeile ist für Windows irrelevant und für Linux quatsch, da müßte `#!/usr/bin/env python3` stehen. Python-Skripte ruft man normalerweise nicht über die "Browserzeile" auf, dazu müßte man nämlich CGI oder ähnliches benutzen, was so ziemlich aus dem letzten Jahrtausend ist, wie PHP auch. Normalerweise nimmt man WSGI, mit einem entsprechenden Framework, oder gleich ein eigener Server. Dein nächstes Problem ist, dass Billighoster nur selten Python unterstützen. CGI-Skripte dürfen nur kurz laufen und geben eine HTML-Seite über Stdout aus. WebSockets laufen aber ewig, wie Du an dem run_forever siehst.
Benutzeravatar
noisefloor
User
Beiträge: 3855
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

wenn du JavaScript kannst, warum nimmst du dann nicht node.js auf der Serverseite?

Gruß, noisefloor
BlackJack

Java ist eher clientseitig? Ich dachte die 90er wären vorbei. :twisted: Wenn es mit JavaScript klappt, dann kannst Du es auch mit JavaScript machen. serverseitig geht das ja auch.

Natürlich kannst Du nicht alle *.py-Skripte über die Browserzeile aufrufen. Wie sollte das denn zum Beispiel funktionieren wenn das mit dem Benutzer eine Kommunikation per `print()` und `input()` abwickeln möchte?

Man kann einzelne Skripte als CGI-Skripte laufen lassen, da muss man dann schauen wie das beim Webserver konfiguriert ist. Ausführbar reicht meistens nicht. In der Regel muss die Datei in einem Verzeichnis liegen wo der Webserver auch ausführt. Und das Verzeichnis liegt dann üblicherweise entweder nicht in den Pfaden wo Dokumente liegen die der Server ausliefert. Damit nicht aus versehen bei Fehlkonfiguration der Quelltext ausgeliefert werden kann.

Letztendlich ist es aber auch nicht üblich einzelne Python-Skripte auszuführen. In den meisten Sprachen funktionieren Webanwendungen nicht über das Dateisystem und einzelne Dateien, sondern es gibt einen zentralen Einstiegspunkt und dort wird konfiguriert welche URL innerhalb der Webanwendungen an welche Funktion oder Methode geht.

Das wohl verbreitetste ”all in one”-Webrahmenwerk Django hat eine umfangreiche Dokumentation, mit Tutorial, und es gibt das Django-Buch Online, und das Django for Girls-Tutorial ist nicht nur für Mädchen zu empfehlen. Für kleinere Sachen gibt es mit Bottle und Flask zwei beliebte Mikrowebrahmenwerke.

Wenn der Webspace-Hoster zögerlich ist mit Auskünften, sollte man sich vielleicht einen auskunftsfreudigeren Webspace-Hoster suchen. :-)

So etwas wie phpinfo gibt es soweit ich weiss nicht, aber das wäre vielleicht auch nicht wirklich sinnvoll bei einer allgemeinen Programmiersprache. Wobei wir beim Begriff Skriptsprache wären: Klar kann man mit Python auch Skripte schreiben, aber das ist eine vollwertige Programmiersprache mit der man auch Programme oder Webanwendungen schreiben kann.
Frika
User
Beiträge: 2
Registriert: Dienstag 28. Februar 2017, 17:15

Herzlichen Dank an alle die mir hier geantwortet haben.
Das node.js scheint für mich der richtige Weg zu sein. Javascript ist doch am ehesten meine Welt.
Antworten