Ваша проблема в том, что вы смешиваете два разных подхода: CGI и mod_python. Вы объявляете свой сценарий издателем mod_python, поэтому вызывается его метод index
, что также делает его модулем, а не сценарием.
Если бы вы использовали CGI, вы бы удалили директивы mod_python из вашей конфигурации Apache, просто оставьте ExecCGI и либо переименуйте скрипт, чтобы иметь расширение .cgi
, либо установите обработчик для расширения .py
, чтобы он был CGI. , также. Тогда ваш скрипт будет выполнен как скрипт, а это значит, что функция index
, которую вы определили в вашем скрипте, не будет выполнена, если вы не вызовете ее с верхнего уровня скрипта.
Как я помню - но я уже давно не обращаю внимания на mod_python - если вы хотите вместо этого использовать mod_python, вам следует использовать mod_python.util.FieldStorage
вместо cgi.FieldStorage
для доступа к данным POST.
Все это говорит о том, что намного лучший выбор для простых веб-материалов - WSGI , например, через mod_wsgi . И, как правило, лучшим выбором, чем обычные веб-ресурсы, является использование веб-фреймворка, например Django , TurboGears , Pylons или одного из множества других, перечисленных в например, страница веб-фреймворков на wiki.python.org