Browserdarstellung

Django, Flask, Bottle, WSGI, CGI…
Antworten
pygirl
User
Beiträge: 4
Registriert: Donnerstag 22. Januar 2015, 09:27

Hi ihr :)

Ich bin blutiger Anfänger was Python-Programmierung betrifft und deshalb tut's mir auch leid, falls meine Frage ziemlich dämlich ist :D Ich hoffe trotzdem, dass ihr mir weiterhelfen könnt.
Ich habe einen Einheitenrechner mit Py programmiert, der über eine Art "Konsole" dargestellt wird. Allerdings möchte ich, dass mein Programm auch über den Webbrowser aufgerufen werden kann, bzw. über einen localhost. Ich möchte also ein Py-Programm, durch das man mit dem Webbrowser kommunizieren kann, bzw. mein Umrechner damit dargestellt wird.
Ich weiß dass das irgendwie geht, aber leider nicht, wie. :K Meine Google-Suche hat auch noch nicht wirklich was ergeben, was allerdings auch daran liegen könnte, dass ich nicht weiß, wie mein "Browser-Darstellungs-Dings" korrekterweise heißen müsste.

Bin über jeden Tipp und Hinweis dankbar :)

PS: Hoffe das ist nicht der falsche Thread dafür :D
BlackJack

@pygirl: Du bräuchtest dafür ein Webrahmenwerk, es sei denn Du möchtest tatsächlich alles auf unterster Ebene selber programmieren, dann wäre das `Netzwerkprogrammierung`-Unterforum doch richtig gewesen. ;-)

Bei den Webrahmenwerken hättest Du dann die Wahl zwischen einer grossen Komplettlösung wie Django wo alles vorhanden ist um grössere Webanwendungen zu erstellen oder einem Mikrorahmenwerk wie Bottle oder Flask.

Da bei dem Einheitenumrechner ja wahrscheinlich keine Daten gespeichert werden oder Benutzer unterschieden oder verwaltet werden müssen, würde ich sagen ein Mikrorahmenwerk reicht aus. Du möchtest ja nur die Benutzereingaben vom Browser zur Webanwendung übertragen, dort die Rechnung durchführen, und das Ergebnis wieder an den Browser ausliefern.

Du müsstest Dich mit HTML, eventuell CSS, und wie HTTP grob funktioniert auseinandersetzen. Und dann einfach mal ein Tutorial, zum Beispiel das von Bottle durcharbeiten (http://bottlepy.org/docs/stable/).

Eventuell musst Du Deinen Einheitenumrechner noch anpassen falls dort Berechnungen und Benutzerinteraktion bisher noch nicht sauber getrennt sind.
pygirl
User
Beiträge: 4
Registriert: Donnerstag 22. Januar 2015, 09:27

Vielen Dank BlackJack :)
Das probiere ich gleich mal aus :)
pygirl
User
Beiträge: 4
Registriert: Donnerstag 22. Januar 2015, 09:27

Inzwischen habe ich mein Programm zum Laufen bekommen. Mein Problem ist jetzt lediglich die Umrechnung - diese funktioniert im Browser noch nicht. Wenn ich als Rechnung

Code: Alles auswählen

def calc(environ, start_response):
    start_response('200 OK', [ ('Content-type','text/html')])
    params = environ['params']
    param_art = params.get('art')
    param_von = params.get('von')
    param_nach = params.get('nach')
    param_wert = params.get('wert')
    # Die vorherigen Werte sind nötig, um zu definieren worum es sich bei welchem Parameter handelt. 
    # Hier soll gerechnet werden:
    ergebniswert = param_wert*2
setze (die 2 ist nur ein Beispiel um zu sehen ob die Rechnung allgemein funktioniert) gibt er mir den param_wert 2x aus. Also bei 50 5050. Ich habe schon versucht das Ganze in Klammern zu setzen und int davor zu setzen, das geht aber auch nicht.
Wo liegt mein Fehler? :(
Sirius3
User
Beiträge: 17748
Registriert: Sonntag 21. Oktober 2012, 17:20

@pygirl: die Parameter sind alles Strings. Du mußt also Dein int an die richtige Stelle setzen.
pygirl
User
Beiträge: 4
Registriert: Donnerstag 22. Januar 2015, 09:27

Oh! So weit hab ich nicht gedacht :oops:
Danke :) Jetzt läufts :)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Noch kurz etwas zum Design: Der Kommentar "Hier soll gerechnet werden" und die Demo(?)-Zeile darunter lassen vermuten, dass Du Deine Berechnung zu stark mit dem Code für die Web-Applikation vermischst! Du solltest den Code für die Berechnung *unabhängig* vom Webrahmenwerk schreiben und diesen nur *aus* dem Handler-Code aufrufen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten