Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> опера не взаимодействует с cgi, опера не взаимодействует с cgi 
:(
    Опции темы
persej
Дата 26.11.2014, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.11.2014

Репутация: нет
Всего: нет



Броузер Опера и Эксплоуер вместо страницы с ответом типа Hello Bob!
выводит:
#!/Python34/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.value)


Изучаю книгу М. Луца программирование на Python 1 том. Основы CGI. 
Остановился на примерах 1.30-1.31. Дальше не идет как нужно.

Пример 1.30. PP4E\Preview\cgi101.html
<html>
<title>Interactive Page</title>
<body>
<form method=POST action=“cgi-bin/cgi101.py”>
<P><B>Enter your name:</B>
<P><input type=text name=user>
<P><input type=submit>
</form>
</body></html>



Пример 1.31. PP4E\Preview\cgi-bin\cgi101.py
#!/usr/bin/python
import cgi
form = cgi.FieldStorage() # парсинг данных формы
print('Content-type: text/html\n') # http-заголовок плюс пустая строка
print('<title>Reply Page</title>') # html-разметка ответа
if not ‘user’ in form:
print('<h1>Who are you?</h1>')
else:
print('<h1>Hello <i>%s</i>!</h1>' % cgi.escape(form.value))


cgi101.py поcле запуска выводит сообщение:
Content-type: text/html

<title>Reply Page</title>
<h1>Who are you?</h1>

После запуска cgi101.html выводится поле, в поле ввожу буквы, после нажатия на кнопку, просто появляется текст:

#!/Python34/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.value)


python на диске в папке С/Python34. 
ОС Windows7.
Какие только варианты не перебирал в строке #!
все равно выводится:
#!/Python34/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.value)


В чем ошибка?

Это сообщение отредактировал(а) persej - 26.11.2014, 10:14
PM MAIL   Вверх
tzirechnoy
Дата 26.11.2014, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



В том, что Ваш веб-сервер и не пытается запустить этот скрипт. Соответственно, это ошыбочная конфигурацыя веб-сервера и к питону отношэния не имеет.

Кстати, в винде шэбанг вообще никогда не работал -- так что настройте вызов питона в веб-сервере по расшырению скрипта.
PM MAIL   Вверх
persej
Дата 27.11.2014, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.11.2014

Репутация: нет
Всего: нет



А как это сделать?

Вот скрипт сервера:
Пример 1.32. PP4E\Preview\webserver.py
"""
Реализация веб-сервера на языке Python, способная запускать серверные 
CGI-сценарии на языке Python; обслуживает файлы и сценарии в текущем 
рабочем каталоге; сценарии на языке Python должны находиться в каталоге 
webdir\cgi-bin или webdir\htbin;
"""
import os, sys
from http.server import HTTPServer, CGIHTTPRequestHandler
webdir = '.' # место, где находятся файлы html и подкаталог cgi-bin 
port = 80 # по умолчанию http://localhost/, иначе используйте 
# 
os.chdir(webdir) # перейти в корневой каталог HTML 
srvraddr = ("", port) # имя хоста и номер порта
srvrobj = HTTPServer(srvraddr, CGIHTTPRequestHandler)
srvrobj.serve_forever() # запустить как бесконечный фоновый процесс

PM MAIL   Вверх
tzirechnoy
Дата 27.11.2014, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Так. С самого начала: что Вы пытаетесь сделать с cgi101.html ?
PM MAIL   Вверх
persej
Дата 29.11.2014, 05:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.11.2014

Репутация: нет
Всего: нет



Через проводник захожу в папку С: /Python34/ , где находится cgi101.html. Щелкаю по нему. Открывается опера с тестовым полем и кнопкой отправить. Пишу в поле типа Sue Smit и нажимаю отправить. Появляется страница с содержимым файла С: /Python34/cgi-bin/cgi101.py

#!/Python34/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.value)


А должно появится сообщение Hello Sue Smit!
PM MAIL   Вверх
tzirechnoy
Дата 29.11.2014, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Цитата
Через проводник захожу в папку С: /Python34/ , где находится cgi101.html. Щелкаю по нему. 


Это зря. Заходить надо на (ужэ запущенный к тому времени) веб-сервер, скрипт которого Вы приводили. Т.е. webserver.py надо запустить. Кстати, из папки с cgi101.html (или прописать в нём полный путь к ней). Если запустится без ошыбок (что не факт, порт 80 можэт быть занят) -- то его адрес будет localhost, его порт -- 80. Т.е. http://localhost:80/cgi101.html
PM MAIL   Вверх
persej
Дата 1.12.2014, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.11.2014

Репутация: нет
Всего: нет



Все заработало как надо smile.

Это сообщение отредактировал(а) persej - 1.12.2014, 07:39
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.