Spec-Zone.ru › Flask 2.1

CGI

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

Это также способ использования приложения Flask в App Engine Google, где выполнение происходит в подобной CGI среде.

Обратите внимание

Пожалуйста, заранее убедитесь, что все вызовы app.run() в вашем файле приложения находятся внутри блока if __name__ == '__main__': или перемещены в отдельный файл. Просто убедитесь, что он не вызывается, так как это всегда запускает локальный WSGI-сервер, чего мы не хотим, если развертываем это приложение в CGI/app engine.

При использовании CGI вам также необходимо убедиться, что ваш код не содержит никаких инструкций print, или что sys.stdout переопределяется чем-то, что не записывает в ответ HTTP.

Создание файла .cgi

Сначала вам нужно создать файл приложения CGI. Давайте назовём его yourapplication.cgi.

#!/usr/bin/python
from wsgiref.handlers import CGIHandler
from yourapplication import app

CGIHandler().run(app)

Настройка сервера

Обычно есть два способа настроить сервер. Либо просто скопировать .cgi в cgi-bin (и использовать mod_rewrite или что-то подобное для переписывания URL) или позволить серверу указать путь к файлу напрямую.

В Apache, например, вы можете добавить что-то подобное в конфигурацию:

ScriptAlias /app /path/to/the/application.cgi

Однако на совместных веб-хостингах у вас может не быть доступа к вашей конфигурации Apache. В этом случае файл с именем .htaccess, находящийся в общедоступном каталоге, где вы хотите, чтобы ваше приложение было доступно, также работает, но директива ScriptAlias в этом случае не сработает:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f # Don't interfere with static files
RewriteRule ^(.*)$ /path/to/the/application.cgi/$1 [L]

Для получения дополнительной информации обратитесь к документации вашего веб-сервера.

© 2007–2022 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/2.1.x/deploying/cgi/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API