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
Eigene Web App starten
-
naheliegend
- User
- Beiträge: 439
- Registriert: Mittwoch 8. August 2018, 16:42
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
-
naheliegend
- User
- Beiträge: 439
- Registriert: Mittwoch 8. August 2018, 16:42
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
Konkrete Fragen kann ich nichtmal formulieren, weil ich zu unwissend bin
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
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.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?
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.
- noisefloor
- User
- Beiträge: 4250
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Ist aber auch in der Flask Doku und im Django Tutorial erklärt...
Gruß, noisefloor
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.Flask oder Django.
Ist aber auch in der Flask Doku und im Django Tutorial erklärt...
Gruß, noisefloor
-
naheliegend
- User
- Beiträge: 439
- Registriert: Mittwoch 8. August 2018, 16:42
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)
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)
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
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:
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'- __blackjack__
- User
- Beiträge: 14238
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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.
“Ich bin für die Todesstrafe. Wer schreckliche Dinge getan hat, muss eine angemessene Strafe bekommen. So lernt er seine Lektion für das nächste Mal.” — Britney Spears, Interview in der französischen Zeitung Libération, 2. April 2002
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.
-
naheliegend
- User
- Beiträge: 439
- Registriert: Mittwoch 8. August 2018, 16:42
Was für ein Modul?__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 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?
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
- __blackjack__
- User
- Beiträge: 14238
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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.
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.
“Ich bin für die Todesstrafe. Wer schreckliche Dinge getan hat, muss eine angemessene Strafe bekommen. So lernt er seine Lektion für das nächste Mal.” — Britney Spears, Interview in der französischen Zeitung Libération, 2. April 2002
-
naheliegend
- User
- Beiträge: 439
- Registriert: Mittwoch 8. August 2018, 16:42
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
im Terminal starte, dann funktioniert alles über Port 1337 etc.
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__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
- noisefloor
- User
- Beiträge: 4250
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
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
Editor und das Programm im Terminal ausführen.Dann würde mich mal interessieren, wie ihr das macht?
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
-
naheliegend
- User
- Beiträge: 439
- Registriert: Mittwoch 8. August 2018, 16:42
Oh man, dann mach ich mich mal auf die Suche nach dem Unterschied.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
-
naheliegend
- User
- Beiträge: 439
- Registriert: Mittwoch 8. August 2018, 16:42
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.
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.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
-
naheliegend
- User
- Beiträge: 439
- Registriert: Mittwoch 8. August 2018, 16:42
Okey, ich versuche mal mein Glück und werde sicherlich nochmal die ein oder andere Frage demnächst haben. Danke.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
- noisefloor
- User
- Beiträge: 4250
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
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
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
