Python CGI не выполняется на Mac OSX 10.6.7 - PullRequest
1 голос
/ 06 января 2012

Недавно я начал читать «Программирующий Python Марка Лутца - Четвертое издание».Я пользователь Mac, использую ActivePython и OSX 10.6.7.В любом случае, все шло хорошо, пока в книге не появился первый экземпляр CGI.Пример кода создает форму и использует метод POST для поиска чьего-либо имени:

<html>
<title>Interactive Page</title>
<body>
<form method=POST action="cgi-bin/testing.cgi">
    <p><b>Enter your name:</b>
    <p><input type="text" name="user">
    <p><input type="submit">
</form>
</body>
</html>

Затем сценарий CGI помещается в подкаталог, как показано в HTML, и выглядит следующим образом:

#!/usr/bin/python
import cgi
form = cgi.FieldStorage()
print("Content-type: text/html\n")
print("<title>Reply Page</title>"
if not 'user' in form:
    print("<h1>Who are you?</h1>")
else:
    print("<h1>Hello <i>%s</i>!</h1>" % cgi.escape(form['user'].value))

Однако, когда я загружаю HTML и запускаю тест, скрипт не выполняется.Происходит то, что либо браузер загружает весь скрипт как гипертекст, либо я загружаю файл .py;в зависимости от используемого браузера (Eclipse и Safari показывают текст, Chrome и Firefox загружают файл).Если это что-то значит, то когда я открываю файл .html, он открывается с использованием file: //, а не http: //.

Я не уверен, может ли это быть проблемой с моим скриптом или смножество других вещей.Если у кого-то есть предложения по запуску CGI на основе Python для Mac, это было бы замечательно.

1 Ответ

2 голосов
/ 06 января 2012

Вам необходимо настроить и запустить веб-сервер, а затем получить доступ к файлу через этот веб-сервер с URL-адресом типа http://localhost:8080/cgi/foo.py,, а не с локальным путем к файлу.

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