385 Stimmen

Automatisches Neu laden der Python Flask-App bei Code-Änderungen

Ich untersuche, wie man eine anständige Web-App mit Python entwickeln kann. Da ich nicht möchte, dass mir einige hochrangige Strukturen im Weg stehen, fiel meine Wahl auf das leichtgewichtige Flask-Framework. Die Zeit wird zeigen, ob dies die richtige Wahl war.

Also habe ich jetzt einen Apache-Server mit mod_wsgi eingerichtet, und meine Testseite läuft gut. Allerdings möchte ich den Entwicklungsprozess beschleunigen, indem die Seite automatisch neu geladen wird, wenn ich Änderungen an den py- oder Template-Dateien vornehme. Ich sehe, dass jede Änderung an der .wsgi-Datei der Seite zu einem Neuladen führt (auch ohne WSGIScriptReloading On in der Apache-Konfigurationsdatei), aber ich muss es immer noch manuell anstoßen (d.h. zusätzliche Zeilenumbrüche einfügen, speichern). Gibt es eine Möglichkeit, das Neuladen zu verursachen, wenn ich einige der App-Py-Dateien bearbeite? Oder soll ich einen IDE verwenden, der die .wsgi-Datei für mich aktualisiert?

17voto

Rajat Tyagi Punkte 310
app.run(use_reloader=True)

wir können das verwenden, use_reloader so dass jedes Mal, wenn wir die Seite neu laden, unsere Code-Änderungen aktualisiert werden.

12voto

Anandakrishnan Punkte 319

Verwenden Sie diese Methode:

app.run(debug=True)

Es wird die Flask-App automatisch neu laden, wenn eine Code-Änderung erfolgt.

Beispielcode:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
   return "Hallo Welt"

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

Nun, wenn Sie Zeit sparen möchten, indem Sie die Webseite nicht jedes Mal neu laden müssen, wenn Änderungen auftreten, können Sie die Tastenkombination Strg + R ausprobieren, um die Seite schnell neu zu laden.

11voto

Anthonyeef Punkte 2405

Ich habe eine andere Idee:

Erstens:

pip install python-dotenv

Installieren Sie das python-dotenv Modul, das lokale Präferenzen für Ihre Projektumgebung liest.

Zweitens:

Fügen Sie eine .flaskenv Datei in Ihrem Projektverzeichnis hinzu. Fügen Sie den folgenden Code hinzu:

FLASK_ENV=development

Das war's!

Mit dieser Konfiguration für Ihr Flask-Projekt, wenn Sie flask run ausführen, sehen Sie diese Ausgabe in Ihrem Terminal:

Bildbeschreibung hier eingeben

Und wenn Sie Ihre Datei bearbeiten, speichern Sie einfach die Änderung. Sie werden sehen, dass das automatische Neuladen für Sie verfügbar ist:

Bildbeschreibung hier eingeben

Mit weiteren Erklärungen:

Natürlich können Sie jedes Mal manuell export FLASK_ENV=development eingeben, wenn Sie es benötigen. Aber es scheint eine bessere Lösung zu sein, eine andere Konfigurationsdatei zu verwenden, um die tatsächliche Arbeitsumgebung zu handhaben, daher empfehle ich nachdrücklich diese Methode, die ich verwende.

9voto

husseinraed Punkte 517

Vom Terminal aus können Sie einfach sagen

export FLASK_APP=app_name.py
export FLASK_ENV=development
flask run

oder in Ihrer Datei

if __name__ == "__main__":
    app.run(debug=True)

6voto

eric xu Punkte 358

Aktiviere den Neulader in Flask 2.2:

flask run --reload

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X