404 ошибка с питоном на apache2 - PullRequest
1 голос
/ 11 апреля 2011

У меня есть файл test.py в /var/www, и я использую apache2 в Ubuntu 10.10.У меня установлено mod_python и /etc/apache2/sites-available/default настроено как

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride AuthConfig
    Order allow,deny
    allow from all

    AddHandler mod_python .py
    PythonHandler mod_python.publisher
    PythonDebug On

    # Uncomment this directive is you want to see apache2's
    # default start page (in /apache2-default) when you go to /
    #RedirectMatch ^/$ /apache2-default/
</Directory>

Если поставить

def index(req):
  return "Test successful";

Тогда я получу Test successful

И если я поставлю

#!/usr/bin/env python
print "Content-Type: text/html"
print
print """\
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
"""

Я получаю 404: Not found Ошибка

Больше можно найти здесь

У кого-нибудь есть идеи ??

С уважением,

экспериментX

Ответы [ 2 ]

2 голосов
/ 11 апреля 2011

mod_python ищет метод def index(req) по умолчанию, когда он пытается обработать ваши запросы, в противном случае вы можете указать функцию, которую вы хотите вызвать в URL. Обратите внимание, что функция должна возвращать определенное значение.

Так что вы можете сделать что-то вроде

s ="""\
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
"""

def index():
   return s

URL-адрес путешествия в mod_python - , показанный здесь.

1 голос
/ 11 апреля 2011

Вместо mod_python Я бы посоветовал вам использовать mod_wsgi, так как существует много платформ, использующих WSGI, таких как Flask , CherryPy , Bottle , и т.д ...

Крутая вещь в этих платформах заключается в том, что вам даже не нужно использовать Apache на своей машине разработки, но вместо этого вы можете использовать их встроенный тест-сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...