[ppa-qps-devel] =?koi8-r?b?z8LSwcLP1MvBINrB0NLP08/X?=
Brought to you by:
ods
From: <gl...@in...> - 2006-09-23 07:49:55
|
Добрый день. У меня опять возник вопрос, на этот раз не по приложению (оно более-менее установилось), а скорее как оно работает. Правильно я понимаю, что запросы в системе apache+mod_python+ppa/qps обрабатываются примерно по следующему алгоритму: 1) пользователь через браузер генерирует http-запрос на web-сервер, в теле запроса фигурирует имя скрипта script.py 2) web-сервер видит это имя и пытается в своих конфигурациях найти подходящий обработчик для скриптов такого типа 3) находит директиву PythonHandler (работающую в определенной директроии), она имеет вид: PythonHandler Handler_Filename::Handler_Class.handler_method, где: * файл Handler_FilenameHandler_Filename.py должен находиться в описанной директории * в этом файле должен быть описан класс Handler_Class, имеющий в своем теле метод handler_method(req,...), имеющий в качестве одного из своих параметров ссылку на структуру http-запроса 4) web-сервер (точнее уже mod_python) запускает интерпретатор Python'а, который создает объект класса Handler_Class и вызывает в нем handler_method, передавая запрос в качестве параметра 5) дальше обработка запроса полностью на совести handler_method, он может подключать дополнительные модули (в частности ppa, qps), затем возвращать результат работы на сервер (например, через параметр response) 6) в конце интерпретатор закрывается, сервер отсылает полученные от него данные пользователю Если я ничего не наврал, не совсем понятно, как работает web-приложение, написанное с использованием ppa, qps: 1) еще давно Вы писали, что в типичной конфигурации apache должна присутствовать директива PythonHandler edit::handler, в файле edit.py присутствует строчка handler = Handler.Handler(Edit(site)), т.е. создается объект из файла Handler.py класса Handler с некоторыми параметрами, тогда не совсем понятно, как из этой точки узнать, какой именно метод отвечает за обработку запросов и передать ему этот запрос? 2) если запускать приложение (файл edit.py) с предложенными настройками, то ни в модуль Site.py, ни в Handler.py управление не передается (проверил, вставив в них печать "Hello, world" в файл), или же для запуска приложения лучше использовать другой файл? Вроде пока все, поправьте меня, если где-то неверно написано, спасибо за помощь! Артем. |