Найти - Пользователи
Полная версия: Директива action, не выполняется скрипт
Начало » Django » Директива action, не выполняется скрипт
1
m00
Всем привет.

Необходимо на уровне апача добавить код в html страницу.

1. Url: http://localhost/test.html
2. htaccess:

Options +ExecCGI
AddHandler cgi-script .py
Action text/html /test.py
Теперь при запросе на получения html файла будет выполнятся скрипт, в котором можно распарсить загружаемую страничку, вставить нужный код и отправить клиенту. Данный вариант работает и с ним нет никаких проблем.

Теперь, если урл обрабатывает джанго

1. Url: http://localhost/

2. htaccess

Options +ExecCGI
AddHandler cgi-script .py
Action text/html /test.py

SetHandler python-program
SetEnv DJANGO_SETTINGS_MODULE settings
SetEnv PYTHON_EGG_CACHE /.....

PythonDebug On
PythonHandler django.core.handlers.modpython
PythonPath "['/..../'] + sys.path"
PythonOption django.root /.....

PythonInterpreter .....
3. urls.py

(r'^$', функция из views)

4. views.py

Сдесь в функции идет рендер на test.html
render_to(test.html)

Проблема в том, что теперь скрипт test.py не выполняется. Такое ощущение что запроса на предоставление html дока апачу не было … Ошибок в логах апача нет.

Где я неправ?
Naota
Видимо апач все запросы отдает джанге, показывай конфиг.
m00
Naota
Видимо апач все запросы отдает джанге, показывай конфиг.
Конфиг только тот, что я кинул выше (htaccess), другого нет …

Если в этом конфиге закоментить SetHandler python-program, то скрипт test.py сработает (если вызывать конкретный html документ). Похоже SetHandler python-program конфликтует с директивой action. Можно ли это как то исправить, я пока не знаю ….
Naota
Я не спец по настройке апача, но вероятно это можно разрулить через Alias или mod_rewrite.
m00
Naota
Я не спец по настройке апача, но вероятно это можно разрулить через Alias или mod_rewrite.
Похоже это нельзя разрулить.
Устанавливая директиву SetHandler python-program, мы говорим апачу, что все урлы должны обрабатываться апачем, через мод питон. Получается что апачу всё равно какой пришел запрос, он его просто отдаст джанге … Хотя в конечном итоге именно апач отдает страничку в браузер, тогда почему не срабатывает директива action …

Вообщем, понять бы как работает это механизм, как всё происходит … по шагам
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB