Примечание: ВНИМАНИЕ: это сервер разработки. Не используйте его в производственном развертывании. Вместо этого используйте производственный сервер WSGI.
При разработке и тестировании веб-приложений, особенно при использовании таких фреймворков, как Flask или Django, разработчики часто видят такие предупреждающие сообщения: «ВНИМАНИЕ: это сервер разработки. Не используйте его в рабочем развертывании. Вместо этого используйте производственный сервер WSGI. «Это предупреждающее сообщение указывает на то, что текущая серверная среда подходит только для разработки и тестирования и не должна использоваться в производственной среде.
Сервер разработки — это легкий сервер, который поставляется с платформой, позволяющей разработчикам быстро тестировать и отлаживать приложения. Однако ему не хватает безопасности, стабильности и оптимизации производительности, необходимых для производственных сред. Поэтому при развертывании в рабочей среде следует использовать удобный для производства сервер WSGI, например Gunicorn или uWSGI.
Основная причина этого предупреждения заключается в том, что разработчики напрямую используют сервер разработки, поставляемый с платформой, вместо использования сервера WSGI, подходящего для производственных сред. Общие причины включают в себя:
Ниже приведен пример ошибки с использованием платформы Flask. Разработчик напрямую использует app.run() для запуска сервера:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True) # Сервер разработки, подходящий для разработки и тестирования
Объяснение: Приведенный выше код полностью корректен в среде разработки, но его запуск непосредственно в производственной среде приведет к проблемам с производительностью и безопасностью. Это вызовет предупреждающее сообщение.
В производственной среде для запуска приложения следует использовать удобный WSGI-сервер. Вот пример использования Gunicorn для развертывания приложения Flask:
Установить Ганикорн
Сначала убедитесь, что у вас установлена установка Ганикорн:
pip install gunicorn
Настройте и запустите приложение
Используйте Gunicorn для запуска приложения Flask:
gunicorn -w 4 -b 127.0.0.1:8000 myapp:app
Изменить код приложения Flask
Убедитесь, что код приложения Flask не вызывает app.run() в производственной среде:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
# Используется только в среде разработки
if __name__ == '__main__':
app.run(debug=True) # Только для среды разработки
Благодаря вышеуказанным шагам и мерам предосторожности разработчики могут избежать использования сервера разработки непосредственно в производственной среде, тем самым повышая безопасность и производительность приложений.