Из документации фляги:
Несмотря на легкость и простоту использования, встроенный сервер Flask не подходит для производства, поскольку плохо масштабируется. Некоторые параметры, доступные для правильной работы Flask в производственной среде, описаны здесь.
В настоящее время я использую небольшое веб-приложение, которое я написал, которое я использую только на локальном хосте для личного использования. Он не позволяет выполнять запросы за пределами локального хоста, поэтому он не предназначен для использования в Интернете. Он также использует sqlite, который, я думаю, накладывает некоторые ограничения на многопоточность при использовании фляги.
У меня возникают проблемы с загрузкой нескольких видеофайлов одновременно (я написал приложение галереи) с помощью этого метода:
@app.route('/content/<path:path>')
def send_http_file(path):
return send_from_directory(os.path.dirname(path), os.path.basename(path), cache_timeout=0)
Firefox отправляет http 206 для «предварительной загрузки видео» (я так думаю?), и большинство видео загружаются нормально, но в какой-то момент кажется, что передача видеофайлов останавливается без видимой причины. Открытие ссылки на видео на другой вкладке работает отлично, но не на текущей вкладке.
Мне сказали, что сервер flask по умолчанию не подходит (мне также любопытно понять, почему это так, может быть, потому, что это собственный http-сервер python?), Что может привести к проблемам с потоками или взаимоблокировками.
Я либо ищу решение для исправления этого неадекватного сервера (думаю, маловероятно?), либо самый простой в установке/легкий сервер, который я могу использовать и настроить в Windows.
Я просмотрел документацию, но все они, кажется, требуют установки стороннего сервера, который может плохо работать в Windows или казаться слишком сложным для управления. Существуют ли «настоящие веб-серверы», которые представляют собой простой модуль Python?
Я пытался использовать свои сценарии с WSL, но доступ к файлам был немного медленным при использовании os.listdir()
и других файловых операций. Мне любопытно, есть ли у «неадекватного веб-сервера фляги по умолчанию» те же проблемы, или это проблема, специфичная для Windows.
Я не могу использовать file:///
из-за той же политики происхождения.
Я не уверен, что проще всего, но вы смотрели здесь документацию по фляге? https://flask.palletsprojects.com/en/2.0.x/deploying/
Я сам не пробовал, но официантка, похоже, тоже довольно часто встречается.
https://github.com/Pylons/waitress
редактировать: только что попробовал сам и было СУПЕР просто.
pip установить официантку
Ваше приложение не должно использовать функцию app.run(). Просто функция возврата приложения после конфигурации.
waitress-serve --host 127.0.0.1 --call app:createApp
быстрый поиск в Google по теме «как использовать Python для официанток» дал бы вам эту ссылку. https://betterprogramming.pub/introduction-to-waitress-a-wsgi-server-for-python-2-and-3-c77e20cb292b
. Я предоставил вам достаточно ссылок, а также был упомянутый ответ, который, как я думал, был достаточным, чтобы получить это. Если вы получаете ошибку, связанную с происхождением, попробуйте flask cors... from flask_cors import CORS
Не могли бы вы быть немного более точным? Если у меня есть фляжное приложение внутри thing.py, как мне изменить эту команду? Думаю, я делаю
app = Flask(__name__)
с функциейdef createApp(): return app
, но это еще не все...