70 votes

Message d'avertissement lors de l'exécution de Flask

Pendant que j'exécute le code Flask à partir de ma ligne de commande, un avertissement apparaît:

 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.
 

Qu'est-ce que ça veut dire?

54voto

Arthur Dent Points 1212

Comme indiqué dans le Flacon de la documentation:

Tout léger et facile à utiliser, Gourde intégré dans le serveur n'est pas adapté à la production qu'elle n'est pas à l'échelle et, par défaut, ne sert qu'une seule demande à la fois.

Étant donné qu'une application web est prévu pour gérer plusieurs demandes simultanées de plusieurs utilisateurs, Fiole est pour vous avertir que le serveur de développement ne va pas le faire (par défaut). Il recommande l'utilisation d'un Web Server Gateway Interface (WSGI) serveur (de nombreuses possibilités sont répertoriés dans le déploiement des docs avec des instructions supplémentaires pour chaque) qui sera comme votre web/serveur d'application et appelez le Flacon, car il permet de demandes.

45voto

ahmad Points 1679

Essayez gevent:

 from flask import Flask
from gevent.pywsgi import WSGIServer

app = Flask(__name__)

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

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

Remarque: installez gevent en utilisant pip install gevent

19voto

Christian Hur Points 374

Du Flacon 1.x, l'environnement par défaut est définie à la production.

Pour utiliser l'environnement de développement, créer un fichier nommé .flaskenv et l'enregistrer dans le haut-niveau (racine) de votre répertoire de projet. Définir l' FLASK_ENV=development dans la .flaskenv le fichier. Vous pouvez également enregistrer l' FLASK_APP=myapp.py.

Exemple:

myproject/.flaskenv:

FLASK_APP=myapp.py
FLASK_ENV=development

Alors que vous venez d'exécuter cette ligne de commande:

flask run

Qui devrait prendre soin de l'avertissement.

7voto

Franck Dernoncourt Points 4769

Pour supprimer le "Ne pas utiliser le serveur de développement dans un environnement de production." avertissement, exécutez:

export FLASK_ENV = développement

avant flask run .

1voto

Shashank Gupta Points 19

J'ai été en utilisant flacon pour un certain temps maintenant, et aujourd'hui, soudain, cet avertissement activé. J'ai trouvé cette.

Comme mentionné ici, que de châteaux à la version 1.0 de l'environnement dans lequel un flacon application s'exécute par défaut est défini à la production. Si vous exécutez votre application dans un ancien flacon de version, vous ne serez pas voir cet avertissement.

Nouveau dans la version 1.0.

Changelog

L'environnement dans lequel le Flacon application s'exécute est définie par la FLASK_ENV variable d'environnement. Si non définie, la valeur par défaut de la production. L'autre reconnu environnement de développement. Flacon et les extensions peuvent choisir d'activer des comportements en fonction de l'environnement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X