Flask Page wird im Browser nicht geladen

Django, Flask, Bottle, WSGI, CGI…
Benutzeravatar
Gorditron
User
Beiträge: 11
Registriert: Sonntag 2. Januar 2022, 13:25

Ich habe ein kleines Problem und möchte mich in Flask ausprobieren.
Nun habe ich In PyCharm ein Testprojekt gestartet und es funktioniert auch alles ohne Probleme.
Wenn ich nun das selbe Projekt über CMD starte und die Seite mit 127.0.0.1:5000 aufrufen möchten, funktioniert es nicht.
Der Browser bleibt auf "Seite Laden" stehen und es kommt auch keine Fehlermeldung.
Danach habe ich wieder das Projekt In PyCharm gestartet, es funktioniert weiterhin alles ohne Probleme und auch mit den selben Browser.
Dann habe ich das Projekt mit Tonny und mit Idle getestet und bei beiden, ist das gleiche Fehlerbild aufgetreten.
Habt Ihr eine Idee?

- Python auf dem Rechner: V3.12.1 (CMD und Idle)
- Tonny Python: V3.10.11
- PyCharm Python: V3.12
- Browser: Google Chrome
- Flask überall eingebunden
- Templates Ordner mit Index.html ist vorhanden

Code: Alles auswählen

from flask import Flask, request, render_template

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('index.html')


@app.route('/login', methods=['GET', 'POST'])
def login():
    name = ""
    if request.method == 'POST':
        name = request.form['name']
    else:
        name = request.args.get('name')

    return 'Hello' + name + "!"

if __name__ == '__main__':
    app.run(port=5000, debug=True)
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

wenn du Flask bzw. deine Flask Applikation in einem Terminal startest bekommst du doch eine Ausgabe im Terminal. Da siehst du u.a. auch, ob überhaupt ein Request des Browser ankommt.

Gruß, noisefloor
einfachTobi
User
Beiträge: 491
Registriert: Mittwoch 13. November 2019, 08:38

PyCharm legt standardmäßig für neue Projekte ein venv an. Hast du das beim Starten über cmd und Thonny vorher aktiviert bzw. wenn nicht: ist Flask in dem Python mit dem du es startest installiert?
Benutzeravatar
Gorditron
User
Beiträge: 11
Registriert: Sonntag 2. Januar 2022, 13:25

Danke , für eure Rückmeldungen.
Also ich würde sagen, dass die Meldungen OK sind.
Ich habe Python im Pfad hinterlegt und habe auch Flask mit PIP installiert
Auch in den Thonny Paketen habe ich Flask installiert.
Eine Requestliste der einzelnen Anfrage, bekomme ich nur in PyCharm.

Hier die Rückmeldungen von Thonny und CMD:
Nach dem Start von Thonny!

Code: Alles auswählen

>>> %Run main.py
 * Serving Flask app 'main'
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
OK
Nach dem Start über CMD!

Code: Alles auswählen

C:\Users\gs\Desktop\Dolphin_6_V0_0_0_a1>python main.py
 * Serving Flask app 'main'
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 124-735-076
 
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Gorditron: Und was kommt zu dieser Ausgabe jeweils dazu wenn Du die Seite im Browser lädst?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
Gorditron
User
Beiträge: 11
Registriert: Sonntag 2. Januar 2022, 13:25

PyCharm gibt diese einzelnen Anfrage raus und Thonny, CMD und Idle geben nichts raus.

Code: Alles auswählen

127.0.0.1 - - [21/Dec/2023 15:34:24] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [21/Dec/2023 15:34:24] "GET /favicon.ico HTTP/1.1" 404 -
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Gorditron: Versuch mal einen anderen Browser. Chrome/Chromium hat zumindest in der Vergangenheit nämlich ein ziemlich dusseliges Verhalten an den Tag gelegt was inkompatibel mit Server ist, die single-threaded laufen, und zu „dead lock“-Situationen führen kann.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
Gorditron
User
Beiträge: 11
Registriert: Sonntag 2. Januar 2022, 13:25

Ich habe es jetzt mit einem anderen Browser (Firefox) getestet.
1. Test CMD : hat funktioniert
2. Test Thonny: hat nicht funktioniert
3. Test CMD: hat nicht funktioniert
4. Test CMD: Port auf 5001 geändert -> hat wieder funktioniert!

Code: Alles auswählen

if __name__ == '__main__':
    app.run(port=5001, debug=True)
Als wenn jeder Port immer nur einmal funktioniert!?
Benutzeravatar
Gorditron
User
Beiträge: 11
Registriert: Sonntag 2. Januar 2022, 13:25

Port-Freigabe (5000) in der Firewall hat nichts gebracht.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Greifst du von einem anderen Rechner im gleichen Netzwerk zu? Dann solltest du beim Start von Flask auch den Host angeben und auf 0.0.0.0 stellen.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

"funktioniert nicht" ist keine wirklich brauchbare Fehlermeldung bzw. damit kommt niemand weiter... davon ausgehend, dass die Flask Applikation grundsätzlich lauffähig ist gibt IMHO drei Möglichkeiten:

* beim Aufruf des Skript in der Umgebung $FOO bekommt man direkt eine Fehlermeldung (z.B. weil das Flask-Modul fehlt) und das Skript wird erst gar nicht ausgeführt.
* Das Skript läuft, bekommt aber trotz Aufruf im Browser nie einen Request -> dann stimmt was im Netzwerk nicht und im Browser sollte man eine Fehlermeldung bekommen.
* Das Skript läuft, bekommt einen Request und erfüllt diesen. Dann bekommt man eine Logausgabe von Flask. Wenn im Browser der Ladespinner unendlich dreht stimmt was mit dem Browser nicht.

Gruß, noisefloor
Benutzeravatar
Gorditron
User
Beiträge: 11
Registriert: Sonntag 2. Januar 2022, 13:25

Nein, ich greife momentan nur lokal zu.
Benutzeravatar
Gorditron
User
Beiträge: 11
Registriert: Sonntag 2. Januar 2022, 13:25

Hallo noisefloor,
danke für deine Infos, aber mein Problem ist, dass es keine Fehlermeldungen gibt.
Ansonsten würde ich diese posten. Im Browser läuft nur eine Eieruhr ohne Ende.
Gibt es eine Möglichkeit, den Datenaustausch zwischen dem Browser und dem Flask-Modul zu loggen?
Gruss Gorditron
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Gorditron hat geschrieben: Freitag 22. Dezember 2023, 08:28 Als wenn jeder Port immer nur einmal funktioniert!?
Das ist in der Tat so, wenn ein Port nicht für ein "reuse" eingestellt wird. Ich kann mir aber nicht vorstellen, das dies im Entwicklungsserver von Flask nicht berücksichtigt wird. Jedenfalls hat sich Flask bei mir noch nie so verhalten.

Am besten Du legst für Dein Projekt manuell ein virtuelles Environment an; dann weißt Du was Du wo getan hast und bist nicht von der möglicherweise unverstandenen Magie der IDEs abhängig. Dort installierst Du dann Flask. Und aus diesm Environment heraus startest Du dann die Anwendung – alles schön von der Kommandozeile.
Benutzeravatar
grubenfox
User
Beiträge: 432
Registriert: Freitag 2. Dezember 2022, 15:49

Gorditron hat geschrieben: Freitag 22. Dezember 2023, 13:46 Gibt es eine Möglichkeit, den Datenaustausch zwischen dem Browser und dem Flask-Modul zu loggen?
Entwicklerkonsole im Browser? Hier im Firefox habe ich unter "Extras" einen Untermenüpunkt "Browser-Werkzeuge" was dann zu weiteren interessant klingenden Menüpunkten führt...
Benutzeravatar
Gorditron
User
Beiträge: 11
Registriert: Sonntag 2. Januar 2022, 13:25

Hallo Grubenfox,
ja kenne ich und das habe ich schon geprüft!
Ich habe ja oben schon geschrieben, dass es keine Fehlermeldungen gibt.
Keine Fehlermeldung im Browser (Chrome/Entwicklungstools/Konsole)
Keine Fehlermeldungen von dem Flaskmodul.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

du schweigst dich immer noch über die Ausgabe von Flask aus, siehe diverse Posts weiter oben. Wenn du Flask mit dem eingebauten Entwicklungserver wie in deinem Falle startest gibt der in den Terminal, indem er läuft, zwingend was aus. Die Ausgabe muss du analysieren oder gerne auch hier posten. Ohne kommt man hier wohl nicht weiter.

Gruß, noisefloor
Benutzeravatar
Gorditron
User
Beiträge: 11
Registriert: Sonntag 2. Januar 2022, 13:25

du schweigst dich immer noch über die Ausgabe von Flask aus
Hallo noiseflor,
nein! In meinem Post vom 21.Dezember um 15:08 Uhr habe ich doch die Konsolenausgabe von Flask gepostet.
Mehr wird von Flask nicht ausgegeben.

Hier noch einmal die Rückmeldungen von Thonny und CMD:
Nach dem Start von Thonny!

Code: Alles auswählen

>>> %Run main.py
 * Serving Flask app 'main'
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
OK
Nach dem Start über CMD!

Code: Alles auswählen

C:\Users\gs\Desktop\Dolphin_6_V0_0_0_a1>python main.py
 * Serving Flask app 'main'
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 124-735-076
 
Diese Log wie bei PyCharm werden nicht ausgegeben! Auch keine weiteren Fehlermeldungen!

Code: Alles auswählen

127.0.0.1 - - [21/Dec/2023 15:34:24] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [21/Dec/2023 15:34:24] "GET /favicon.ico HTTP/1.1" 404 -
Benutzeravatar
Gorditron
User
Beiträge: 11
Registriert: Sonntag 2. Januar 2022, 13:25

Wenn einer auch dieses Problem hat:

Ich kann zur Zeit nur für Windows 11 sprechen.
Es gib ein Problem mit dem erreichen des Servers.
Der Reloader, wird automatisch im Debug-Modus gestartet und ist die Ursache.
Mit folgender Änderung hatte sich das Problem erledigt.
Ich arbeite seit einer Woche mit Python und vielleicht gibt es einen hier,
der das "Warum" erklären kann.
Ich habe die Lösung im Netz, ohne genaue Erklärung des Problems, gefunden.

Code: Alles auswählen

app.run(use_reloader=False, host="0.0.0.0", port=8080 , debug=False)
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich kann nur raten, dass da Windows still und leise die Firewall anwirft. Weil da ein Debugger-Port geoeffnet wird oder so.
Antworten