web-dev-qa-db-fra.com

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

Lorsque je lance le code Flask depuis 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?

24
Harshit Satya

Comme indiqué dans la documentation Flask :

Léger et facile à utiliser, le serveur intégré de Flask ne convient pas à la production car il ne s’adapte pas bien et ne sert par défaut qu’une demande à la fois.

Étant donné qu'une application Web doit gérer plusieurs demandes simultanées de plusieurs utilisateurs, Flask vous avertit que le serveur de développement ne le fera pas (par défaut). Il est recommandé d’utiliser un serveur serveur WSGI } _ ( de nombreuses possibilités sont répertoriées dans les documents de déploiement avec des instructions supplémentaires pour chacune } qui serviront de serveur Web/application Flask comme il sert des demandes.

28
Arthur Dent

À partir de Flask 1.x, l'environnement par défaut est défini sur la production. Pour utiliser l'environnement de développement, créez un fichier appelé .flaskenv et enregistrez-le au niveau supérieur (racine) du répertoire de votre projet. Définissez FLASK_ENV = development dans le fichier .flaskenv. Vous pouvez également enregistrer le fichier FLASK_APP = myapp.py.

Exemple: 

mon projet/.flaskenv

FLASK_APP=myapp.py
FLASK_ENV=development

Ensuite, vous exécutez simplement ceci sur la ligne de commande: flask run Cela devrait prendre en compte l’avertissement.

5
Christian Hur

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 __== '__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

4
lashgar

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

export FLASK_ENV = développement

avant flask run.

1

J'utilise la fiole depuis un certain temps maintenant, et aujourd'hui, cet avertissement est apparu soudainement. J'ai trouvé ça.

Comme mentionné ici , à partir de la version 1.0, l'environnement dans lequel une application de flacon s'exécute est défini par défaut sur la production. Si vous exécutez votre application dans une version plus ancienne du flacon, cet avertissement ne s'affiche pas.

Nouveau dans la version 1.0.

Changelog

L'environnement dans lequel l'application Flask s'exécute est défini par la variable d'environnement FLASK_ENV. Si non défini, il est par défaut en production. L’autre environnement reconnu est le développement. Les flacons et les extensions peuvent choisir d'activer les comportements en fonction de l'environnement.

1
Shashank Gupta

dans les configurations ou la configuration, vous pouvez ajouter le code suivant: ENV = ""

comme si vous essayiez d’ajouter debug à true comme ceci DEBUG = True

pour plus de détails, vous pouvez vérifier ceci http://flask.pocoo.org/docs/1.0/config/#ENV

1
Arian saputra

Je tapais flask run et puis j'ai vu ce message après que je résolve ce problème avec ceux-ci:

1- Ajoutez ce texte dans votre myproject/.flaskenv:
FLASK_APP = myapp.py
FLASK_ENV = développement
Vous devez également saisir "pip3 install python-dotenv" pour utiliser ce fichier .flaskenv 

2-dans votre dossier de projet, tapez dans le terminal votre commande de flacon que vous utilisez:
flask-3 run

0
gok han