Эта глава — уже четвертая в нашем обзоре интернет-программирования на языке Python. В предыдущих трех главах мы изучили сокеты и основные интерфейсы программирования клиентов, такие как FTP и электронная почта. В этой главе наше внимание будет сосредоточено на создании сценариев, выполняемых на стороне сервера, — программ, обычно называемых CGI-сценариями. Хотя эти сценарии относятся к самому нижнему уровню веб-разработки, тем не менее, они предоставляют простой способ, позволяющий начать разработку интерактивных сайтов на языке Python.
Сценарии, выполняемые на серверах, и производные от них лежат в основе большинства взаимодействий в Сети. Это справедливо как для CGI- сценариев, создаваемых вручную, так и для высокоуровневых фреймворков, автоматизирующих выполнение некоторых задач. Вследствие этого знание фундаментальной модели устройства Веб, которую мы будем исследовать здесь в контексте программирования CGI-сценариев, является совершенно необходимым условием для успешной разработки веб-приложений независимо от используемых инструментов.
Как будет показано ниже, Python является идеальным языком для создания сценариев, реализующих и настраивающих сайты, благодаря простоте применения и разнообразию библиотек. В следующей главе мы будем использовать знания, полученные здесь, для реализации полнофункциональных сайтов. А сейчас наша цель состоит в том, чтобы понять основные принципы разработки серверных сценариев, прежде чем перейти к исследованию систем, строящихся и развертывающихся на основе этой простой модели.
Замок на песке
При чтении последующих двух глав этой книги следует иметь в виду, что они фокусируются на основах разработки серверных сценариев и могут служить лишь введением в программирование на языке Python в этой области. Сфера веб-программирования обширна и сложна, быстро и непрерывно меняется, и часто существуют различные способы достижения заданной цели, некоторые из которых могут разниться от броузера к броузеру и от сервера к серверу.
Например, схема шифрования паролей, представленная в следующей главе, может в некоторых ситуациях оказаться излишней (при наличии подходящего сервера можно использовать защищенную версию протокола HTTP). Кроме того, фрагменты HTML, которые мы будем использовать, вероятно, не отражают всей мощи этого языка разметки, и иногда могут даже не соответствовать стандартам HTML. На практике, большая часть нового материала, добавлявшегося при переизданиях этой книги, появилась в ответ на развитие технологий в области веб-программирования.
Учитывая, сколь велико и изменчиво это поле деятельности, данная часть книги не претендует на полноту рассмотрения области создания серверных сценариев. То есть вы не должны рассматривать эти главы, как последнее слово по данной теме. Чтобы стать настоящим специалистом в этой сфере, нужно изучить другие книги, излагающие дополнительные детали и приемы веб-мастерства, — например, книгу Чака Муссиано (Chuck Musciano) и Билла Кеннеди (Bill Kennedy) «HTML & XHTML: The Definitive Guide», издательство O’Reilly)1.
Но не все так мрачно! Здесь вы познакомитесь с основными идеями, лежащими в основе разработки серверных сценариев, встретитесь с набором инструментов для CGI-программирования, имеющихся в языке Python, и получите знания, достаточные, чтобы начать создавать на языке Python собственные веб-сайты. Эти знания вы сможете применять повсюду в Веб.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011