Spec-Zone.ru › Flask 0.12

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–2020 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/0.12.x/deploying/cgi/

Spec-Zone.ru

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