С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
 Аватар для persej
4 / 4 / 3
Регистрация: 26.11.2014
Сообщений: 89

Opera не работает с cgi

26.11.2014, 07:22. Показов 3298. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Броузер Опера и Эксплоуер вместо страницы с ответом типа Hello Bob!
выводит:
Python
1
2
3
4
5
6
7
8
9
#!/Python34/python
import cgi
form = cgi.FieldStorage() 
print('Content-type: text/html\n') 
print('<title>Reply Page</title>') 
if notuserin 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
HTML5
1
2
3
4
5
6
7
8
9
<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
Python
1
2
3
4
5
6
7
8
9
#!/usr/bin/python
import cgi
form = cgi.FieldStorage() # парсинг данных формы
print('Content-type: text/html\n') # http-заголовок плюс пустая строка
print('<title>Reply Page</title>') # html-разметка ответа
if notuserin 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 выводится поле, в поле ввожу буквы, после нажатия на кнопку, просто появляется текст:
Python
1
2
3
4
5
6
7
8
9
#!/Python34/python
import cgi
form = cgi.FieldStorage() 
print('Content-type: text/html\n') 
print('<title>Reply Page</title>') 
if notuserin form:
print('<h1>Who are you?</h1>')
else:
print('<h1>Hello <i>%s</i>!</h1>' % cgi.escape(form.value)
python на диске в папке С/Python34.
ОС Windows7.
Какие только варианты не перебирал в строке #!
все равно выводится:
Python
1
2
3
4
5
6
7
8
9
#!/Python34/python
import cgi
form = cgi.FieldStorage() 
print('Content-type: text/html\n') 
print('<title>Reply Page</title>') 
if notuserin form:
print('<h1>Who are you?</h1>')
else:
print('<h1>Hello <i>%s</i>!</h1>' % cgi.escape(form.value)
В чем ошибка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.11.2014, 07:22
Ответы с готовыми решениями:

не запускаеться (CGI вместе с MySQL) под Apache: Premature end of script headers: c:/www/cgi-bin/catalog.cgi
такая трабла: вот что пишет Apache в Log: Premature end of script headers: c:/www/cgi-bin/catalog.cgi main::ltimestr()...

Запуск CGI вне cgi-bin и запуск index.cgi
Никак не получается сделать настройку 1) Запуск CGI-программ ВНЕ /cgi-bin/ 2) Запуск index.cgi в директории /cgi-bin/ если в URL нет...

CGI. Не работает редирект
На всякий случай прикладываю код для запуска сервера from http.server import HTTPServer, CGIHTTPRequestHandler server_address =...

16
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.11.2014, 07:30
Цитата Сообщение от persej Посмотреть сообщение
cgi101.py поcле запуска выводит сообщение:
Цитата Сообщение от persej Посмотреть сообщение
После запуска cgi101.html
Не понимаю что и как запускается.
Cgi-скрипты по идее должны запускаться http-сервером, который обрабатывает запросы клиентов. Поэтому вопрос: есть ли сервер и как настроен?
0
 Аватар для persej
4 / 4 / 3
Регистрация: 26.11.2014
Сообщений: 89
26.11.2014, 07:49  [ТС]
cgi101.py запускал из IDLE. cgi101.py находится в папке С:/python34/cgi-bin/.
cgi101.html находится С:/python34/. cgi101.htm открывая броузером Опера или эксплоуер, в нем появляется поле. В него ввожу имя. Нажимаю кнопку. Не отображается ответ типа Hello Bob!
Сервер не запускал. Это учебные примеры из книжки, пытаюсь опробовать их на практике.
Есть подозрение, что неправильно набрана строка #!/Python34/python.
Перебрал много вариантов этой строки.
Насколько понял броузер не может запустить файл интерпретатор питона, так как не может найти путь к самому python.exe. Хотя запуск cgi101.py из IDLE выводит тестовую информацию.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.11.2014, 08:09
Цитата Сообщение от persej Посмотреть сообщение
Сервер не запускал.
Еще раз: браузер взаимодействует с сервером по http и не имеет никакого представления о том, как на файлухе лежат серверные скрипты и каким интерпретатором они выполняются.

Добавлено через 6 минут
Самое простое, что можно предложить: в рабочем каталоге создать каталог cgi-bin, положить туда скрипты. Затем в рабочем каталоге выполнить python -m CGIHTTPServer. Запустится простой сервер на некотором порту (по умолчанию 8000). После этого в браузере можно будет обратиться по урлу localhost:8000/cgi-bin/имя_скрипта
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
26.11.2014, 08:36
Цитата Сообщение от persej Посмотреть сообщение
Сервер не запускал.
Это вы зря, надо было запустить.
1
 Аватар для persej
4 / 4 / 3
Регистрация: 26.11.2014
Сообщений: 89
26.11.2014, 12:43  [ТС]
Делаю примеры по книге. Т.е прочитал-сделал.
В этих примерах не упоминается о сервере.
Надо, чтобы выводило сообщение типа "Hello Bod!" без запуска сервера.(см. М. Луц примеры). Только начал осваивать практическое программирование на Python.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
26.11.2014, 12:49
persej, не знаю, какой у вас М. Лутц, но в моём про cgi написано в главе 12, называется "Сценарии, выполняемые НА СЕРВЕРЕ", и там на несколько страниц объяснений всей этой механики.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.11.2014, 15:35
Цитата Сообщение от persej Посмотреть сообщение
В этих примерах не упоминается о сервере.
Смешно шутишь, иди в камеди
0
 Аватар для persej
4 / 4 / 3
Регистрация: 26.11.2014
Сообщений: 89
27.11.2014, 05:31  [ТС]
Да действительно, далее по тексту идет скрипт сервера который нужно запускать перед выполнением html страниц

Пример 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/, иначе используйте
# http://localhost:xxxx/
os.chdir(webdir) # перейти в корневой каталог HTML
srvraddr = ("", port) # имя хоста и номер порта
srvrobj = HTTPServer(srvraddr, CGIHTTPRequestHandler)
srvrobj.serve_forever() # запустить как бесконечный фоновый процесс


Но по прежнему после ввода в форму букв и нажатия кнопки передать, в окне броузера отображается содержимое скрипта \cgi-bin\cgi101.py.
А вот если в адресную строку броузера ввести http://localhost/cgi-bin/cgi101.py?user=Sue+Smith
То в броузере появится сообщение Hello Sue Smith. То есть то что нужно.
Если отключить сервер, то как и ожидалось, выводится сообщение типа нет сети.
Тоесть нужно получить такой же результат, но после нажатия в окне броузера кнопки отправить.
Может в этой строке ошибка #!/Python34/python ?
из cgi-bin\cgi101.py
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
27.11.2014, 07:17
Цитата Сообщение от persej Посмотреть сообщение
То в броузере появится сообщение Hello Sue Smith. То есть то что нужно.
Ну зашибись, работает же.
Цитата Сообщение от persej Посмотреть сообщение
Тоесть нужно получить такой же результат, но после нажатия в окне броузера кнопки отправить.
Проверьте, что после нажатия кнопки вы отправляетесь по правильному адресу.
0
 Аватар для persej
4 / 4 / 3
Регистрация: 26.11.2014
Сообщений: 89
27.11.2014, 13:35  [ТС]
Когда нажимаю нтмл файл, то в адресной строке появляется:
file:///C:/Python34/cgi101.html

После введения английских букв Sue Smith в тестовом поле и нажатия кнопки отправить, в адресной строке появляется:
file:///C:/Python34/cgi-bin/cgi101.py

А надо чтобы было:
http://localhost/cgi-bin/cgi101.py?user=Sue+Smith

Как это сделать?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
27.11.2014, 13:39
Цитата Сообщение от persej Посмотреть сообщение
Когда нажимаю нтмл файл то в адресной строке появляется
file:///C:/Python34/cgi101.html
Нужно не html-файл открывать, а в браузере зайти на http://localhost/ (возмоно, на http://localhost/cgi101.html).
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
27.11.2014, 13:41
persej, это точно.
А на каком адресе вы находитесь, когда отправляете форму?
За то, куда отправимся, отвечает action:
XML
1
<form method=POST action=“cgi-bin/cgi101.py”>
Если с локалхоста - отправимся на локалхост. Если оставить пустым - отправимся на этот же адрес.
0
 Аватар для persej
4 / 4 / 3
Регистрация: 26.11.2014
Сообщений: 89
27.11.2014, 14:28  [ТС]
Все заработало! товарищи!
Когда ввел в адресную строку броузера:
http://localhost/cgi101.html
Вышел на туже форму. Заполнил и нажал отправить. Получился ответ из вводимых слов- то, что требовалось.
Продолжаю далее кропеть над М.Луц "Программирование на Python" том 1. Уже изучил М.Луц "Изучаем Python".
0
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
27.11.2014, 23:26
Цитата Сообщение от persej Посмотреть сообщение
Все заработало! товарищи!
Когда ввел в адресную строку броузера:
http://localhost/cgi101.html
Вышел на туже форму. Заполнил и нажал отправить. Получился ответ из вводимых слов- то, что требовалось.
Продолжаю далее кропеть над М.Луц "Программирование на Python" том 1. Уже изучил М.Луц "Изучаем Python".
наюух книжки) такие...целый том прочита, а толку ноль))) люди за 3-4 недели учат пайтон и работать идут с офф з/п)))вахаха
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
28.11.2014, 00:43
Цитата Сообщение от warrax Посмотреть сообщение
наюух книжки) такие...целый том прочита, а толку ноль))) люди за 3-4 недели учат пайтон и работать идут с офф з/п)))вахаха
Школьник успокойся уже, человек учится и правильно делает, а ты иди дальше балбесничай.
0
 Аватар для persej
4 / 4 / 3
Регистрация: 26.11.2014
Сообщений: 89
28.11.2014, 14:54  [ТС]
Мне понравилась сама философия языка. Решил медленно, но основательно изучить язык. Выбрал стратегию- долго запрягать,чтобы потом быстро ездить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2014, 14:54
Помогаю со студенческими работами здесь

Не работает read в CGI
Пытаюсь прочитать HTML форму (метод POST) while read a do echo &quot;$a&quot; done - по нулям, в цикл даже не входит read -n...

Не работает CGI программа
Всем доброго времени суток. Подскажите, пожалуйста, нужно сделать определенный сайт с использованием CGI на C++. Решил начать с самого...

Ошибка 500 cgi, нужно запустить батник через cgi
Apache на Windows (!!) Если запускаю localhost/run.bat все работает исправно, скрипт простой, тестовый @echo off echo...

Почему скрипт не работает в Chrome, а в Firefox и Opera работает?
Имеется обычный код JS, работающий в Firefox и Opera, но не работающий в Chrome. Кстати хотел ещё заметить, что alert() работает в...

Perl + SSI = ошибка invalid CGI ref 'http://сервер/cgi-bin/view_bag.pl' in ....
Вопрос такой: Скрипт view_bag.pl без ошибок выполняется в папке /cgi-bin/, при этом атрибуты файла rwxr-xr-x. Но есть файл bag.shtml,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru