Запустите приложение production Flask локально, без сложного веб-сервера



Я создал небольшое веб-приложение для друга. Компьютер этого друга не будет подключен к Интернету при использовании приложения,поэтому его развертывание на Heroku не является вариантом.



Есть ли способ развернуть его локально, не устанавливая сложный веб-сервер? Что-то маленькое, что можно упаковать вместе с приложением? Использование встроенного сервера Flask, кажется, не рекомендуется, когда вы переходите к "производству", но для локального приложения это нормально?

594   2  

2 ответов:

Если он просто будет использоваться в автономном режиме одним человеком, то да, внутренний сервер разработки может быть достаточным.

Если вы ищете простой способ отправить это приложение ей, то смотрите pyinstaller :

pip install pyinstaller
pyinstaller your_app.py

Заархивируйте папку внутри нового каталогаdist и передайте ее дальше.

Если pyinstaller не для вас, есть множество вариантов.

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

from multiprocessing import cpu_count
app.run(debug=False, processes=cpu_count())

Если вы хотите немного больше производительности, рассмотрите возможность использования uwsgi или gunicorn. Оба являются хорошими серверами приложений WSGI, которые можно установить с помощью Пип вместе с вашим заявлением.

gunicorn -w $(nproc) --threads 2 --max-requests 10 myproject:app

Comments

    Ничего не найдено.