Seite 1 von 3

Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 09:33
von naheliegend
Hi,

ich möchte mir selbst irgendeine Web App schreiben (einfach üben und lernen), jedoch bin ich gerade überfordert damit, was ich alles dafür brauche und einstellen muss.

Könnte jemand in wenigen Schritten erklären, was ich tun muss, damit ich quasi code schreiben kann, der dann local bei mir im Browser eine Webseite aufruft?

In allen Tutorials werden immer unzählige Terminal commands ausgeführt und ich bin mir nicht sicher, was dort genau eingerichtet wird.

LG

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 09:59
von Sirius3
Welche konkrete Frage hast du? Mit welchem Framework arbeitest du? Im Terminal wird eigentlich immer nur das Pythonprogramm aufgerufen, das den Server startet.

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 10:48
von naheliegend
Flask oder Django. Grundlegend müsste das doch genau so funktionieren wie z.B. in Ruby on Rails, oder?

Konkrete Fragen kann ich nichtmal formulieren, weil ich zu unwissend bin :D

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 10:54
von Sirius3
Dann arbeite erst mal das Tutorial von Flask und/oder Django durch.
Wenn dann konkrete Fragen da sind, kannst du sie ja hier stellen.

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 13:27
von nezzcarth
naheliegend hat geschrieben: Samstag 3. Oktober 2020, 09:33 Könnte jemand in wenigen Schritten erklären, was ich tun muss, damit ich quasi code schreiben kann, der dann local bei mir im Browser eine Webseite aufruft?
Ich habe Schwierigkeiten, deine Frage zu verstehen. "lokaler Code, der dann eine Website aufruft" klingt im ersten Moment so, als würdest zum Beispiel von Python aus Wikipedia in deinem Firefox öffnen wollen. Das hat aber mit Webanwendungen nichts zu tun und ist daher wohl nicht, was du meinst.

Die Sache bei Webentwicklung ist, dass man (Grund)kenntnisse in mehreren Technologien braucht. Insofern liegt es in der Natur der Sache, dass dir das kompliziert vorkommt. Man sollte ganz grob verstehen, wie das HTTP-Protokoll funktioniert, man braucht HTML und heute meist auch CSS, JavaScript, server-seitige Programmiersprachen, etc. Falls dir diese Grundkenntnisse noch fehlen, empfehle ich die Ressourcen des Mozilla Developer Network: https://developer.mozilla.org/en-US/docs/Learn. Da findest du, wenn du ausreichend Zeit mitbringst, alles, was du brauchst, inkl. einem Django Tutorial.

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 16:18
von noisefloor
Hallo,
Flask oder Django.
Das ist aber ein ziemlicher Unterschied. Eine minimale Flask App bekommst du mit < 10 Zeilen Code in einer Datei hin, bei Django musst du erst das Projekt und dann die App anlegen und dann noch ein paar Dateien editieren.

Ist aber auch in der Flask Doku und im Django Tutorial erklärt...

Gruß, noisefloor

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 18:48
von naheliegend
from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
return 'Hello World!'


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



---

Warum gibt er mir nicht Port 1337, sondern geht immer noch auf 5000?

* Serving Flask app "app.py"
* Environment: development
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 19:11
von sparrow
143 Beiträge und noch kein Code in Code-Tags? Bitte verwende die doch, im Code zu posten, damit die Einrückung erhalten bleibt.

Dein Code funktioniert und startet mit folgender Ausgabe:

Code: Alles auswählen

* Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 271-344-867
 * Running on http://127.0.0.1:1337/ (Press CTRL+C to quit)

Code: Alles auswählen

>>> import flask
>>> flask.__version__
'1.1.2'

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 19:16
von __blackjack__
@naheliegend: Aus dem gleichen Grund warum da „Debug mode: off“ steht: Du führst das Modul ganz offensichtlich nicht als Programm aus und deshalb wird auch die letzte Zeile nicht ausgeführt.

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 19:20
von nezzcarth
Ich gehen davon aus, dass du die Anwendung wie hier beschrieben startest: https://flask.palletsprojects.com/en/1. ... pplication. In dem Fall werden, wie schon von __blackjack__ angemerkt, die beiden unteren Zeilen nicht ausgeführt, weil __name__ den Modulnamen und nicht __main__ enthält. Starte entweder dein Skript direkt oder strukturier deinen Code um.

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 19:24
von naheliegend
__blackjack__ hat geschrieben: Samstag 3. Oktober 2020, 19:16 @naheliegend: Aus dem gleichen Grund warum da „Debug mode: off“ steht: Du führst das Modul ganz offensichtlich nicht als Programm aus und deshalb wird auch die letzte Zeile nicht ausgeführt.
Was für ein Modul?
Was heißt als Programm ausführen? Was passiert denn, wenn ich auf "run" drücke in meiner IDE?
Warum wird die letzte Zeile nicht ausgeführt?

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 19:31
von __blackjack__
@naheliegend: Das Modul das Du da geschrieben hast. Als Programm ausführen meint das Modul ausführen. Also so dass das als Programm von Python interpretiert wird.

Was bei "run" in Deiner IDE passiert kommt auf die IDE an. Da können sehr verschiedene Dinge passieren. Von: das Modul wird tatsächlich als Programm ausgeführt, über das Modul wird irgendwie im Kontext der IDE ausgeführt, bei manchen sogar immer im selben Namensraum, so das die Programmläufe nicht mehr unabhängig sind, bis hin zu völlig anderen Sachen, beispielsweise das die IDE bei Webanwendungen die entsprechenden Startprogramme der Webrahmenwerke aufrufen.

IDEs sind kacke. Um das mal überspitzt zu formulieren. 😉

@nezzcarth: Umstrukturieren meint wohl einfach nur das löschen der letzten beiden Zeilen. Denn wenn man es mit ``flask run`` startet, kann man den Port und die Debug-Option dort einfach als Optionen übergeben.

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 19:47
von naheliegend
oooookey. Dann würde mich mal interessieren, wie ihr das macht?

Benutze PyCharm und das haben viele empfohlen und bin nun etwas verwirrt.

wenn ich meine app.py als

Code: Alles auswählen

python app.py
im Terminal starte, dann funktioniert alles über Port 1337 etc.

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 19:55
von noisefloor
Hallo,
Dann würde mich mal interessieren, wie ihr das macht?
Editor und das Programm im Terminal ausführen.

Wenn es - wie erwartet - im Terminal funktioniert, dann weißt du jetzt halt, dass PyCharm da irgendwas anders macht oder in einem anderen Kontext als der Terminal.

Gruß, noisefloor

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 20:09
von naheliegend
Oh man, dann mach ich mich mal auf die Suche nach dem Unterschied.

Re: Eigene Web App starten

Verfasst: Samstag 3. Oktober 2020, 22:03
von Sirius3
Denn Unterschied hat doch __blackjack__ schon erklärt. Wird wohl irgendeine Option in pycharm sein: ausführen als flask-app oder so.

Re: Eigene Web App starten

Verfasst: Sonntag 4. Oktober 2020, 08:39
von naheliegend
Danke.

Nochmal eine andere Frage:

Ich würde gerne weiter lernen und mir irgendeine Web-Anwendung schreiben. Eine Einkaufslistenanwendung mit Login oder so. Was braucht es alles dafür? Würde mit Flask die ganze Logik schreiben und bräuchte dann aber noch eine Datenbank, da ja Werte gespeichert werden müssten.
Kann man das alles lokal auf einem Rechner abwickeln? Also Die Datenbank und den Webserver halt auf dem Localhost?
Ist ja alles nur zu Übungszwecken.

Re: Eigene Web App starten

Verfasst: Sonntag 4. Oktober 2020, 09:00
von Sirius3
Für Login gibt es für Flask auch Erweiterungen. Als Datenbank reicht Sqlite. Die Anbindung machst du am besten über sqlalchemy dann ist es egal welches konkrete Datenbanksystem dahintersteckt.

Re: Eigene Web App starten

Verfasst: Sonntag 4. Oktober 2020, 11:47
von naheliegend
Okey, ich versuche mal mein Glück und werde sicherlich nochmal die ein oder andere Frage demnächst haben. Danke.

Re: Eigene Web App starten

Verfasst: Sonntag 4. Oktober 2020, 14:46
von noisefloor
Hallo,

je nach dem, was am Ende dabei raus kommen soll, solltest du Django (auch) in Betracht ziehen. Grund: "batteries included" und höhere Integration der Komponenten. Ich hatte damals mit Bottle + SQLAlchemy + Wtforms angefangen, der Umstieg hat (für mich) viele Sachen einfacher gemacht.
Wobei die Lernkurve bei Django am Anfang definitiv steiler ist. Um erst mal zu lernen, wie Webprogrammierung mit Python so grundsätzlich funktioniert, ist Flask oder Bottle definitiv einfacher zum Lernen. Bevor man dann die erste "große" Applikation schreibt sollte man sich über das Framework dann nochmal Gedanken machen.

Gruß, noisefloor