Просто для красоты этот сценарий возвращает название платформы сервера, полученное вызовом функции sys.platform, а также квадрат значения поля ввода age. Обратите внимание на необходимость преобразования значения age в целое число с помощью встроенной функции int — в сценарии CGI все входные значения поступают в виде строк. Преобразование в целое число можно также выполнить с помощью встроенной функции eval. Ошибки преобразования (и прочие) элегантно перехватываются инструкцией try, чтобы вывести строку ошибки и не дать сценарию завершиться раньше времени.
Никогда нельзя использовать функцию eval для преобразования строк, полученных из Интернета, таких как значение поля age в данном примере, если только нет абсолютной уверенности, что строка не может содержать злонамеренного программного кода. Например, если бы этот пример был размещен в Интернете, то кто-нибудь мог бы ввести в поле age строку, содержащую вызов команды оболочки (или дописать параметр age с таким значением в конец URL). В зависимости от контекста и при наличии соответствующих прав у процесса при передаче в eval такая строка может уничтожить все файлы в каталоге сценариев сервера или сделать еще что похуже!
Только если сценарии CGI запускаются в процессе с ограниченными правами и с ограниченным доступом к серверу, можно не опасаться запуска в сценарии CGI на выполнение строк, получаемых из Сети. Никогда не передавайте такие строки инструментам динамического программирования, таким как ev al или exec, а также средствам, выполняющим произвольные команды оболочки, например os.popen и os.system, если только вы не уверены в их безвредности. Для числовых преобразований всегда используйте простые инструменты, такие как int и float, которые могут распознавать только числа, а не произвольный программный код на языке Python.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011