Главная / Программирование /
Язык программирования Python / Тест 8
Язык программирования Python - тест 8
Упражнение 1:
Номер 1
Как передаются CGI-сценарию данные из формы методом POST?
Ответ:
 (1) через стандартный ввод 
 (2) через переменные окружения 
 (3) через аргументы командной строки 
 (4) через файл 
Номер 2
Как передаются CGI-сценарию данные из формы методом GET?
Ответ:
 (1) через стандартный ввод 
 (2) через переменные окружения 
 (3) через аргументы командной строки 
 (4) через файл 
Номер 3
Как получить в CGI-сценарии содержимое файла, переданного web-серверу через форму?
Ответ:
 (1) прочитать со стандартного вывода 
 (2) из атрибута file
объекта FieldStorage
 
 (3) прочитать атрибут file
объекта FieldStorage
методами read()
или readlines()
 
 (4) прочитать из файла, имя которого задано в переменной окружения FILE_NAME
 
Номер 4
Как вывести бинарный файл из CGI-сценария для передачи web-клиенту?
Ответ:
 (1) передать web-серверу имя файла через стандартный вывод 
 (2) передать web-серверу имя файла и тип содержимого через стандартный вывод 
 (3) вывести файл на стандартный вывод 
 (4) вывести заголовочные поля (как минимум Content-Type
), а затем содержимое файла на стандартный вывод 
Номер 5
Что происходит при аварийном завершении CGI-сценария (например, при работе с web-сервером Apache)?
Ответ:
 (1) Web-клиент получает частичное содержимое стандартного вывода 
 (2) Web-клиент получает частичное содержимое стандартного вывода ошибок 
 (3) Web-клиент получает пустой ответ 
 (4) Web-клиент получает сообщение "Internal Server Error" 
Упражнение 2:
Номер 1
В какой переменной окружения передается метод запроса (GET, POST и т.п.)?
Ответ:
 (1) REQUEST_METHOD
 
 (2) REQUEST_URI
 
 (3) HTTP_CONNECTION
 
 (4) QUERY_STRING
 
Номер 2
В какой переменной окружения передается имя пользователя (если применяется авторизация)?
Ответ:
 (1) USER_NAME
 
 (2) REMOTE_USER
 
 (3) USER
 
 (4) LOGIN
 
Номер 3
Какая ошибка допущена в следующем коде CGI-сценария?
import cgi
f = cgi.FieldStorage()
if f.has_key("expr"):
a = f["expr"].value
else:
a = "0"
e = eval(a)
print e
Ответ:
 (1) не выведены поля (хотя бы Content-Type
) 
 (2) ввод пользователя не проверен на безопасность 
 (3) использованы несуществующие методы объектов FieldStorage
 
 (4) ошибок нет 
Номер 4
Какая ошибка допущена в следующем коде CGI-сценария?
import cgi
f = cgi.FieldStorage()
if f.has_key("a"):
v = str(int(f["a"]))
else:
v = "0"
print " " "Content-Type: text/html\n" " "
print v
Ответ:
 (1) неправильно использованы методы FieldStorage-объекта 
 (2) ввод пользователя не проверен на безопасность 
 (3) после получения f["a"]
нужно взять атрибут value
 
 (4) ошибок нет 
Номер 5
Какая ошибка допущена в следующем коде CGI-сценария?
import cgi
f = cgi.FieldStorage()
if f.has_key("a"):
v = str(int(f["a"].value))
else:
v = "0"
print " " "Content-Type: text/html\n" " "
print v
Ответ:
 (1) неправильно использованы методы FieldStorage-объекта 
 (2) ввод пользователя не проверен на безопасность 
 (3) после получения f["a"]
нужно взять атрибут value
 
 (4) ошибок нет 
Упражнение 3:
Номер 1
С помощью какой функции можно подготовить текст для вывода в HTML?
Ответ:
 (1) urllib.quote()
 
 (2) urllib.quote_plus()
 
 (3) cgi.escape()
 
 (4) cgi.unescape()
 
Номер 2
Какой метод дает возможность получить все значения атрибута b
, если он встречается в форме несколько раз?
Ответ:
 (1) form = cgi.FieldStorage(); l = form.getlist("b") 
 (2) form = cgi.FieldStorage(); l = [a.value for a in form["b"]] 
 (3) form = cgi.FieldStorage(); l = form["b"].values 
 (4) form = cgi.FieldStorage(); form.items("b") 
Номер 3
Как обработчик mod_python получает информацию о запросе?
Ответ:
 (1) по аналогии с CGI-сценарием 
 (2) в виде специального объекта, представляющего запрос, переданного как параметр 
 (3) с помощью вызова функции 
 (4) из переменных окружения 
Номер 4
Как обработчик mod_python передает ответ на запрос?
Ответ:
 (1) по аналогии с CGI-сценарием 
 (2) посредством специального объекта, представляющего запрос, переданного как параметр 
 (3) с помощью вызова функции 
 (4) присваиванием значений переменным окружения 
Номер 5
Как в одном Python-сценарии можно задать несколько различных обработчиков mod_python?
Ответ:
 (1) в различных функциях 
 (2) в различных модулях 
 (3) в различных классах 
 (4) один сценарий может иметь только один обработчик 
Упражнение 4:
Номер 1
Какой из перечисленных обработчиков mod_python выполняется раньше других?
Ответ:
 (1) PythonHeaderParserHandler
 
 (2) PythonAuthenHandler
 
 (3) PythonHandler
 
 (4) PythonPostReadRequestHandler
 
Номер 2
Какой из перечисленных обработчиков mod_python выполняется раньше других?
Ответ:
 (1) PythonFixupHandler
 
 (2) PythonPostReadRequestHandler
 
 (3) PythonAuthenHandler
 
 (4) PythonHandler
 
Номер 3
Что включает в себя Zope?
Ответ:
 (1) собственный web-сервер 
 (2) поддержку CGI-сценариев 
 (3) поддержку сценариев DTML 
 (4) СУБД общего назначения 
Номер 4
В каком порядке Zope будет искать index_html
для следующего URL?
http://zopeserver/Zigzag/Example/index_html
Ответ:
 (1) только в каталоге /Zigzag/Example/
 
 (2) в каталогах /Zigzag/Example
и /Zigzag
 
 (3) в каталогах /, /Zigzag
и /Zigzag/Example
 
 (4) в каталогах /Zigzag/Example, /Zigzag и /????
 
Номер 5
Что включает в себя Zope?
Ответ:
 (1) среду разработки 
 (2) поддержку CGI-сценариев 
 (3) специализированную СУБД для хранения объектов 
 (4) поддержку сценариев на Python и Perl 
Упражнение 5:
Номер 1
Как используется строка Main Heading в следующем примере?
<h1 tal:content="here/title">Main Heading</h1>
Ответ:
 (1) в качестве имени переменной для макроподстановки 
 (2) в качестве заглушки, чтобы в средствах визуального форматирования было видно, что форматируется 
 (3) строка не используется 
 (4) содержит значение, на которое можно сослаться в другом месте документа 
Номер 2
Что такое tal
в следующем фрагменте разметки?
<h1 tal:content="here/title">Main Heading</h1>
Ответ:
 (1) имя переменной для макроподстановки 
 (2) указание на принадлежность пространству имен языка TAL 
 (3) имя модуля, к которому относится макрос content
 
 (4) указание на то, что далее следует значение, на которое можно сослаться в другом месте документа 
Номер 3
Что обозначает $el
в примере, использующем TAL?
<a href="DUMMY"
tal:attributes="href string:/digit/$el"
tal:content="el">SELECTION</a>
Ответ:
 (1) имя переменной для макроподстановки в атрибут 
 (2) литеральное значение для подстановки в атрибут 
 (3) имя переменной для макроподстановки внутрь тега <a>
 
 (4) литеральное значение для подстановки внутрь тега <a>
 
Номер 4
Что обозначает k
в примере, использующем TAL?
<a href="k"
tal:attributes="href string:/digit/$el"
tal:content="el">SELECTION</a>
Ответ:
 (1) имя переменной для макроподстановки в атрибут 
 (2) литеральное значение, которое при заполнении шаблона заменяется другим значением 
 (3) имя переменной для макроподстановки между <a>
и </a>
 
 (4) литеральное значение для подстановки между <a>
и </a>
 
Номер 5
Что обозначает k
в примере, использующем TAL?
<a href="k"
tal:attributes="href string:/digit/$el"
tal:content="el">SELECTION</a>
Ответ:
 (1) имя переменной для макроподстановки в атрибут 
 (2) литеральное значение, которое при заполнении шаблона заменяется другим значением 
 (3) имя переменной для макроподстановки между <a>
и </a>
 
 (4) литеральное значение для подстановки между <a>
и </a>