Предупреждающее сообщение во время работы
Пока я запускаю код флэшки из моей командной строки, появляется предупреждение:
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 - в папке вашего проекта наберите в терминале команду на флешку, какую вы используете: