Простейшая веб-программа - это CGI-скрипт, который в основном представляет собой программу, стандартный вывод которой перенаправляется в веб-браузер, выполняющий запрос. При таком подходе каждая страница имеет свой собственный исполняемый файл, который необходимо загружать и анализировать при каждом запросе. Это действительно упрощает запуск и запуск, но плохо масштабируется как с точки зрения производительности, так и с точки зрения организации. Поэтому, когда мне очень нужна очень динамичная страница, которая не перерастет в большую систему, я использую скрипт CGI.
Одним из шагов от этого является встраивание кода Python в код HTML, например, с помощью PSP. Я не думаю, что многие люди используют это в настоящее время, так как современные системы шаблонов сделали это довольно устаревшим. Некоторое время я работал с PSP и обнаружил, что у него в основном те же организационные ограничения, что и у сценариев CGI (каждая страница имеет свой собственный файл), а также некоторые неудобства, связанные с пробелами, из-за попытки смешать незнающий пробелы HTML с Python, чувствительным к пробелам.
Следующий шаг - очень простые веб-фреймворки, такие как web.py, который я также использовал. Как и CGI-скрипты, очень просто запустить и запустить что-то, и вам не нужно сложной конфигурации или автоматически сгенерированного кода. Ваш собственный код будет довольно прост для понимания, чтобы вы могли видеть, что происходит. Тем не менее, он не такой многофункциональный, как другие веб-фреймворки; в прошлый раз, когда я использовал это, не было никакого отслеживания сессии, поэтому я должен был свернуть свой собственный. У него также "слишком много магического поведения", чтобы цитировать Гвидо ("upvars (), bah").
Наконец, у вас есть многофункциональные веб-фреймворки, такие как Django. Это потребует немного работы, чтобы заставить работать простые программы Hello World, но у каждого крупного есть отличный, хорошо написанный учебник (особенно Django), который поможет вам пройти через него. Я настоятельно рекомендую использовать один из этих веб-фреймворков для любого реального проекта из-за удобства, возможностей, документации и т. Д.
В конечном итоге вам придется решить, что вы предпочитаете. Например, все платформы используют языки шаблонов (специальный код / теги) для генерации файлов HTML. Некоторые из них, такие как шаблоны Cheetah, позволяют писать произвольный код Python, чтобы вы могли делать что-либо в шаблоне. Другие, такие как шаблоны Django, являются более строгими и заставляют вас отделять код презентации от логики вашей программы. Это все о том, что вы лично предпочитаете.
Другой пример - обработка URL; В некоторых средах, таких как Django, вы определяете URL-адреса в своем приложении с помощью регулярных выражений. Другие, такие как CherryPy, автоматически сопоставляют ваши функции с URL-адресами по именам ваших функций. Опять же, это личное предпочтение.
Лично я использую смесь веб-фреймворков, используя CherryPy для моего веб-сервера (параметры формы, обработка сеанса, отображение URL и т. Д.) И Django для моего объектно-реляционного отображения и шаблонов. Я рекомендую начать с веб-фреймворка высокого уровня, пройтись по его учебному пособию, а затем начать с небольшого личного проекта. Я сделал это со всеми технологиями, которые я упомянул, и это было действительно полезно. Со временем вы почувствуете, что вам больше по душе, и станете лучшим веб-программистом (и вообще лучшим программистом).