Предупреждающее сообщение во время работы

Пока я запускаю код флэшки из моей командной строки, появляется предупреждение:

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.

Что это значит?

Ответ 1

Как указано в документации к фляге:

В то время как легкий и простой в использовании, встроенный сервер Flasks не подходит для производства, так как он плохо масштабируется и по умолчанию обслуживает только один запрос за раз.

Учитывая, что веб-приложение должно обрабатывать несколько одновременных запросов от нескольких пользователей, Flask предупреждает вас, что сервер разработки не сделает этого (по умолчанию). Он рекомендует использовать сервер веб-сервера шлюза (WSGI) (многочисленные возможности перечислены в документах развертывания с дополнительными инструкциями для каждого), которые будут функционировать в качестве вашего веб-сервера приложений и вызвать флажок, когда он обслуживает запросы.

Ответ 2

Начиная с Flask 1.x, среда по умолчанию настроена на производство. Чтобы использовать среду разработки, создайте файл с именем .flaskenv и сохраните его в корневом каталоге вашего проекта. Установите разработку FLASK_ENV = в файле .flaskenv. Вы также можете сохранить FLASK_APP = myapp.py.

Пример:

MyProject/.flaskenv

FLASK_APP=myapp.py
FLASK_ENV=development

Затем вы просто выполняете это в командной строке: flask run Это должно позаботиться о предупреждении.

Ответ 3

Я уже давно использую колбу, и сегодня, внезапно это предупреждение появилось. Я нашел это.

Как было упомянуто здесь, как и в колбах версии 1.0 среды, в которой колба приложение работает по умолчанию установлено в производство. Если вы запустите приложение в старой версии фляги, вы не увидите это предупреждение.

Новое в версии 1.0.

Изменения

Окружение, в котором работает приложение Flask, задается переменной среды FLASK_ENV. Если он не установлен по умолчанию для производства. Другой признанной средой является развитие. Флаконы и расширения могут выбирать способ поведения, основанный на среде.

Ответ 4

в конфигурациях или конфигурации вы можете добавить этот код: ENV = ""

так же, как если бы вы пытались добавить набор отладки в true, как этот DEBUG = True

более подробно вы можете проверить это http://flask.pocoo.org/docs/1.0/config/#ENV

Ответ 5

Удалить "Не используйте сервер разработки в производственной среде". предупреждение, запустить:

export FLASK_ENV = разработка

до flask run.

Ответ 6

Попробуйте 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()

Примечание: Установите gevent используя pip install gevent

Ответ 7

Я набирал флеш-запуск, а затем увидел это сообщение, после чего я решил эту проблему следующим образом: 1- Добавьте этот текст в ваш myproject/.flaskenv: FLASK_APP = myapp.py FLASK_ENV = development, также вы должны набрать "pip3 install python-dotenv "для использования этого файла .flaskenv 2 - в папке вашего проекта наберите в терминале команду на флешку, какую вы используете: