Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 17, 2014 10:10:56

Domovoj
Зарегистрирован: 2014-09-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Что я делаю не так?

Пытаюсь выполнить пример из книги Марк Лутц - Программирование на Python, 4-е издание, II том, 2011
(стр 479)

#!/usr/bin/python 
"""
выполняется на сервере, выводит разметку HTML для создания новой страницы; 
url=http://localhost/cgi­bin/tutor0.py 
"""
print('Content­type: text/html\n')
print('<TITLE>CGI 101</TITLE>')
print('<H1>A First CGI Script</H1>')
print('<P>Hello, CGI World!</P>')

Пользую веб сервер предлагаемый в книге (стр 469):
import os, sys 
from http.server import HTTPServer, CGIHTTPRequestHandler
webdir = '.' # каталог с файлами HTML и подкаталогом cgi­bin для сценариев 
port   = 80  # http://servername/ если 80, иначе http://servername:xxxx/
if len(sys.argv) > 1: webdir = sys.argv[1]    # аргументы командной строки 
if len(sys.argv) > 2: port = int(sys.argv[2]) # иначе по умолчанию ., 80 
print('webdir "%s", port %s' % (webdir, port))
os.chdir(webdir)        # перейти в корневой веб­каталог 
srvraddr = ('', port)   # имя хоста, номер порта 
srvrobj = HTTPServer(srvraddr, CGIHTTPRequestHandler) 
srvrobj.serve_forever() # обслуживать клиентов до завершения

С html страницами всё ок. Открывает.

Файлик со сценарием положил в папку cgi-bin лежащую в той же директории что и сценарий сервера

При попытке открыть через браузер http://localhost/cgi-­bin/tutor0.py.
Выдаёт пустую страницу. В логе сервера же пишет: CGI script exited OK

Всё уже перепробовал… Что блин не так?


PS: Выполнение следующего скрипта
from urllib.request import urlopen
reply=urlopen('http://localhost:8080/cgi-bin/module1.py').read()
print(reply)
В консоли выдаёт результат b''



PPS: Пробовал выполнять всё вышеперечисленное на 2-х разных компах (Win8.1 Х64 и Win7 X86.) Версия компилятора-3,4

Отредактировано Domovoj (Сен. 17, 2014 11:28:44)

Офлайн

#2 Сен. 17, 2014 11:25:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10014
Репутация: +  857  -
Профиль   Отправить e-mail  

Что я делаю не так?

Два топика было уже http://python.su/forum/post/131140/



Отредактировано py.user.next (Сен. 17, 2014 11:26:09)

Офлайн

#3 Сен. 17, 2014 12:04:34

Domovoj
Зарегистрирован: 2014-09-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Что я делаю не так?

py.user.next
Два топика было уже http://python.su/forum/post/131140/
В том топе нашёл ссылку на другой топ в котором нашёл вот это
py.user.next
Попробуй этот набор.

И благодоря этому удалось выяснить, что…. файлы созданные в Phyton-проэкте в Visual Studio и в IDLE при своей синтаксической идентичности работают по разному. Первый вариант при работе через веб ведёт себя так, как описано в первом посте. Второй работает так, как ожидалось….

Осталось выяснить почему так… Причём в обоих случаях интерпретатор Python 64-bit 34


И тем не менее спасибо py.user.next так или иначе разобрался в первопричине…

Офлайн

#4 Сен. 17, 2014 16:09:18

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Что я делаю не так?

Domovoj
Осталось выяснить почему так… Причём в обоих случаях интерпретатор Python 64-bit 34
Маркер последовательности байтов



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#5 Сен. 17, 2014 22:04:45

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10014
Репутация: +  857  -
Профиль   Отправить e-mail  

Что я делаю не так?

Domovoj
Осталось выяснить почему так
Нужно сравнить их побайтово или просто найти различия в hex-редакторе.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version