Форматирование строк

formatirovanie strok Сценарии на стороне сервера

На этот раз в строке формата мы использовали ссылки на ключи словаря — напомню, что %(name)s означает необходимость извлечь значение для ключа name из словаря данных и преобразовать его в строку.

Поля с не сколь ки ми вари ан та ми Выбора

Проверяется также тип значений всех ожидаемых полей, чтобы определить, не получен ли список вместо обычной строки. Значения элементов ввода с несколькими вариантами выбора, таких как поле выбора language на этой странице ввода, возвращаются из cgi.Field- Storage в виде списка объектов с атрибутами value, а не простого одиночного объекта с атрибутом value.

Этот сценарий дословно копирует в словарь значения простых полей, а для извлечения значений полей с несколькими вариантами выбора использует генератор списков и с помощью строкового метода join конструирует единую строку, вставляя and между выбранными значениями (например, Python and Tcl). Генератор списков, использованный в сценарии, эквивалентен вызову map(lambda x: x.va- lue, form[field]).

Здесь это не показано, однако объекты FieldStorage имеют альтернативные методы getfirst и getlist, которые позволяют интерпретировать поля ввода, как значения из одного или из нескольких элементов независимо от того, чем в действительности они являются (подробности ищите в руководстве по стандартной библиотеке Python). И как будет показано ниже, помимо простых строк и списков может возвращаться еще один, третий тип объектов — для полей ввода, определяющих выгруженные файлы. Для надежности сценарий в действительности должен также экранировать текст, полученный из полей ввода и вставляемый в разметку HTML ответа — на случай, если он содержит операторы языка HTML. Подробнее об экранировании мы поговорим ниже.

Когда эта страница с формой будет заполнена и отправлена на сервер, сценарий создаст ответ, как показано на рис. 15.14, — в сущности, лишь форматированное отражение того, что было передано.

Рис. 15.14. Страница ответа, созданная сценарием tutor5.py (1)

 

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий