web-dev-qa-db-de.com

Warnmeldung beim Ausführen von Flask

Während ich den Flaschencode von meiner Befehlszeile aus laufe, wird eine Warnung angezeigt:

Serving Flask app "hello_flask" (lazy loading)
* Environment: production
  WARNING: Do not use the development server in a production environment.
  Use a production WSGI server instead.

Was bedeutet das?

24
Harshit Satya

Wie in der Flask-Dokumentation angegeben :

Der eingebaute Server von Flask ist zwar leicht und einfach zu bedienen, eignet sich jedoch nicht für die Produktion, da er nicht gut skalierbar ist und standardmäßig nur jeweils eine Anforderung bedient.

Da erwartet wird, dass eine Webanwendung mehrere gleichzeitige Anforderungen von mehreren Benutzern verarbeitet, warnt Sie Flask, dass der Entwicklungsserver dies nicht tut (standardmäßig). Es wird empfohlen, einen WSGI-Server ( Web Server Gateway Interface) zu verwenden ( In den Bereitstellungsdokumenten sind zahlreiche Möglichkeiten mit weiteren Anweisungen für jeden ) aufgeführt, die als Web-/Anwendungsserver fungieren und Flask aufrufen, während sie dienen Anfragen.

28
Arthur Dent

Ab Flask 1.x ist die Standardumgebung auf Produktion eingestellt. Erstellen Sie zur Verwendung der Entwicklungsumgebung eine Datei mit dem Namen .flaskenv und speichern Sie sie in der obersten Ebene (Stammverzeichnis) Ihres Projektverzeichnisses. Legen Sie die FLASK_ENV = -Entwicklung in der .flaskenv-Datei fest. Sie können auch FLASK_APP = myapp.py speichern.

Beispiel: 

meinprojekt/.flaskenv

FLASK_APP=myapp.py
FLASK_ENV=development

Dann führen Sie dies einfach in der Befehlszeile aus: flask run Das sollte die Warnung berücksichtigen.

5
Christian Hur

Versuchen Sie gevent:

from flask import Flask
from gevent.pywsgi import WSGIServer

app = Flask(__name__)

@app.route('/api', methods=['GET'])
def index():
    return "Hello, World!"

if __== '__main__':
    # Debug/Development
    # app.run(debug=True, Host="0.0.0.0", port="5000")
    # Production
    http_server = WSGIServer(('', 5000), app)
    http_server.serve_forever()

Hinweis: Installieren Sie gevent mit pip install gevent.

4
lashgar

So entfernen Sie "Verwenden Sie den Entwicklungsserver nicht in einer Produktionsumgebung" Warnung, lauf:

export FLASK_ENV = Entwicklung

vor flask run.

1

Ich benutze flask seit einiger Zeit, und heute tauchte plötzlich diese Warnung auf. Ich habe das gefunden.

Wie bereits erwähnt hier , ist ab flask Version 1.0 die Umgebung, in der eine flask App ausgeführt wird, standardmäßig auf Produktion eingestellt. Wenn Sie Ihre App in einer älteren flask Version ausführen, wird diese Warnung nicht angezeigt.

Neu in Version 1.0.

Änderungsprotokoll

Die Umgebung, in der die App Flask ausgeführt wird, wird durch die Umgebungsvariable FLASK_ENV festgelegt. Wenn nicht, wird standardmäßig die Produktion eingestellt. Das andere anerkannte Umfeld ist die Entwicklung. Flask und Erweiterungen können Verhalten basierend auf der Umgebung aktivieren.

1
Shashank Gupta

in Konfigurationen oder Konfigurationen können Sie diesen Code hinzufügen: ENV = ""

dasselbe wie wenn Sie versuchen, den Debug-Satz wie folgt auf true zu setzen DEBUG = True

weitere Informationen finden Sie unter http://flask.pocoo.org/docs/1.0/config/#ENV .

1
Arian saputra

Ich tippte flask run und sah dann diese Nachricht, nachdem ich dieses Problem mit diesen gelöst habe:

1- Fügen Sie diesen Text in Ihr Projekt/.flaskenv ein:
FLASK_APP = myapp.py
FLASK_ENV = Entwicklung
Sie sollten auch "pip3 install python-dotenv" eingeben, um diese Datei .flaskenv zu verwenden 

2 - Geben Sie in Ihrem Projektordner in terminal Ihren Flaschenbefehl ein, den Sie verwenden:
Kolben-3-Lauf

0
gok han