CGI: пишем простой сайт на Python. Часть 1: Hello world

Проще всего создать динамические страницы на Python при помощи CGI-скриптов. CGI-скрипты — это исполняемые файлы, которые выполняются веб-сервером, когда в URL запрашивается соответствующий скрипт.
Сегодня я расскажу про то, как написать Hello world, как CGI-скрипт.
Настройка локального сервера
В Python уже есть встроенный CGI сервер, поэтому его настройка элементарна.
Для запуска из консоли (для любителей linux-систем). Запускать нужно из той папки, где мы хотим работать:
python3 -m http.server --cgi
Для сидящих на Windows чуть проще будет запуск Python файла (заметьте, что он должен находиться в той же папке, в которой мы планируем работать!):
Теперь откройте браузер и в адресной строке наберите localhost:8000
Если у вас примерно такая же картина, значит, у вас все заработало!
Hello world
Теперь в той папке, где мы запустили сервер, создаём папку cgi-bin (у меня она уже создана).
В этой папке создаём скрипт hello.py со следующим содержимым:
"Первая строка говорит о том, что это Python скрипт (CGI-скрипты можно не только на Python писать).
Вторая строка печатает заголовок. Он обозначает, что это будет html файл (бывает ещё css, javascript, pdf и куча других, и браузер различает их по заголовкам).
Третья строка (просто символ новой строки) отделяет заголовки от тела ответа.
Четвёртая печатает Hello world.
Теперь переходим на localhost:8000/cgi-bin/hello.py
Если у вас не работает, проверьте, установлены ли права на выполнение.
Также в консоли запущенного сервера появляются сообщения об ошибках. Например, убрал скобочку и обновил страницу:
В следующей части мы рассмотрим обработку данных форм и cookies.
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv - чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Как создать сайт на Python?


#Реклама
На чтение 3 мин Опубликовано 04.10.2022
Разбираемся в особенностях языка и в использовании фреймворка Django.
Когда компании нужен сайт, который работает максимально эффективно и быстро, решить задачу с помощью одного из популярных конструкторов не получится: нужно писать код. Возникает вопрос: какой язык выбрать? И здесь можно заметить, что уже несколько лет в пятерку лидирующих в среде веб-программирования языков входит Python. Почему же разработка сайтов на Python пользуется такой популярностью?
Преимущества разработки на Python: выбор программистов
Созданный в конце второго тысячелетия, этот язык имеет следующие достоинства:
↗️ те, кто переходят на Python из других языков, отмечают высокую скорость освоения синтаксиса: язык выглядит довольно простым, а конструкции — хорошо читаемыми. Новички в программировании также быстро начинают писать простые программы;
↗️ работа с большими или комплексными числами, поддержка различных структур данных (списки, словари, очереди) не требует подключения библиотек, поскольку встроена в язык;
↗️ кроме этого, Python по умолчанию поддерживает все используемые кодировки;
↗️ также здесь реализован мощный механизм работы с базами данных;
↗️ программисту не нужно беспокоиться о «сборке мусора»: язык берет работу с памятью на себя;
↗️ о дна и та же программа будет одинаково выполняться на различных операционных системах.
Python — интерпретируемый язык, поэтому вносить правки в код можно «на лету». Это же обстоятельство делает его хорошим скриптовым инструментом.
Наконец, для Python написано огромное количество пользовательских библиотек, которые программист может использовать, не изобретая велосипед.
Как создать сайт на Python легко и быстро
Создание сайтов на Python увлекает, даже если собирать необходимые библиотеки самому. Однако скорость создания сайта тоже имеет значение. Для ускорения и упрощения работы программиста почти во всех языках создаются фреймворки, и Python — не исключение.
Один из популярных фреймворков, позволяющий создать веб сайт на Python, носит название Django. Он освобождает программиста от утомительной работы, предоставляя сборочный каркас, на который можно «повесить» различные элементы:
- фронтенд;
- скрипты;
- библиотеки;
- базы данных;
- контент и средства работы с ним.
К достоинствам фреймворка, помимо облегчения процесса разработки, также можно отнести возможность более эффективной дальнейшей поддержки готового продукта, а также более низкую вероятность ошибки по сравнению с кодом, написанным «с нуля».
Реализовать всё это помогают несколько концепций, реализованных в Django:
↗️ использование отдельного элемента кода для решения нескольких схожих задач. Концепция носит название «Do not Repeat Yourself» («Не повторяйся», сокращённо DRY). Код не дублируется в разных участках текста, что помогает в разработке, отладке и поддержке;
↗️ и зменения, которые вносятся в отдельный модуль, влияют только на работу этого модуля, но не на код в целом. Это позволяет улучшать текст более точечно, не боясь нарушить функциональность кода.
Преимущества Django
Фреймворк включает в себя все необходимые программисту инструменты, поэтому программист не отвлекается на поиск библиотек.
С помощью Django сайт на Python может быть любого типа, от новостного агрегатора до видеохостинга. Если даже какой-то необходимый компонент не включен в Django, фреймворк может получить его из сторонних источников.
Сам фреймворк регулярно обновляется сообществом разработчиков, поэтому работает стабильно, а приложения, написанные с его помощью, содержат меньше ошибок.
При необходимости увеличить функционал приложения не нужно переписывать весь код, достаточно внести изменения в конкретный модуль.
Иллюстрация предоставлена рекламодателем
Актуальные новости города и области смотрите в нашем ТГ-канале и в соцсетях «Вконтакте» и «Одноклассники».
CGI: пишем простой сайт на Python. Часть 3: Пример приложения

Мы уже научились обрабатывать формы и устанавливать cookies. Сегодня же мы посмотрим, что может из этого получиться.
Чтобы работать с пользовательскими данными, нужно где-то эти данные сохранять. Самый простой (но далеко не самый изящный и безопасный) - хранение данных в файлах. Более продвинутый способ - хранение в базе данных. Мы остановимся на первом способе, как на самом простом.
Собственно, ничего нового здесь объясняться не будет. Работу с файлами вы уже знаете, обрабатывать формы уже умеете.
Сегодня мы напишем прототип приложения типа "твиттер". Данные в файлах будем хранить в json.
Создадим 2 файла: один будет отвечать за обработку данных, вводимых пользователем, второй - вспомогательный модуль, который упростит код первого.
cgi-bin/wall.py:
Стена Форма логина и регистрации. При вводе несуществующего имени зарегистрируется новый пользователь. Логин: Пароль: Здесь мы используем форматирование строк для формирования страницы (кстати, это первый шаг на пути к созданию собственного шаблонизатора).
Не забудьте дать этому файлу права на выполнение (второму файлу эти права не нужны).
cgi-bin/_wall.py (здесь определены функции publish, login и другие):
Разумеется, в нашем простом "твиттере" очень много недостатков: не выводятся предупреждения пользователю, регистрация при несуществующем имени, пароли хранятся в открытом виде, использованные куки не удаляются, и многие другие. Кто хочет, может усовершенствовать.
Но есть и преимущество: поскольку у нас теперь 2 разных файла (почти независимых), то можно поменять систему хранения данных (например, база данных вместо файлов), вообще не затрагивая wall.py.
Напоследок покажу, как это работает:
Сначала зарегистрировались, теперь нужно ещё раз ввести логин-пароль, чтобы войти.
В следующей (возможно последней) части я покажу, как это всё можно опубликовать в сети интернет.
Для вставки кода на Python в комментарий заключайте его в теги
Уроки Django
Уроки Django (Создание сайта) / Урок #1 - Введение в фреймворк Django
Python – мощный язык, функциональность которого увеличивается при использовании дополнительных библиотек. В видео курсе мы изучим популярный фреймворк Django и построим полноценный веб сайт на основе Джанго.
Видеоурок
Информация про Джанго
Язык Python универсальный и на его основе можно писать приложения для различных целей. Создать сайт на Python вполне возможно, но сайт на питоне гораздо проще создается при использовании Д жанго Питон. При помощи дополнительных библиотек можно создавать как приложения, так и веб сайты. К примеру, для создания игр на Python понадобиться библиотека Pygame , а для создания сайтов – Django .
Зачем нужен Джанго?
Писать сайты на Питон на самом деле можно и без использования сторонних библиотек или же фреймворков. В то же время, написание сайта на основе лишь Python – это долгий и сложный процесс. Чтобы облегчить дело были придуман отдельные фреймворки или, другими словами, готовые решения для ускорения процесса построения сайта.
Джанго создан на основе языка Питон. За счёт Django вы можете намного проще и быстрее создавать как легкие, так и сложные веб сайты.
На самом деле, Джанго не является монополистом и помимо него существуют другие Фреймворки, обеспечивающие схожую функциональность. Несмотря на остальных Джанго удобно себя чувствует на месте лидера в теме разработки сайтов на питон.
Преимущества Джанго
Преимущество Джанго перед другими фреймворками заключается в огромном наборе готового функционала, за счет которого можно быстро и просто создать систему регистрации на сайте, добавить форум на сайт, реализовать систему поиска по сайту или выполнить какое-то другое действие на сайте.
В Джанго используется схема MVC. Это схема позволяет удобно разбить файлы на одну из трех категорий: HTML шаблоны, файлы модели для работы с базой данных и файлы контроллеры для связи моделей и HTML шаблонов между собой.

Одна из ключевых особенностей Джанго в том, что вы можете скачать отдельную часть проекта и добавить её в свой проект, просто заменив ссылки на нужные для вас.
Сайты на Джанго можно создавать быстро, они обладают шустрой подгрузкой, а также могут выдерживать большие нагрузки. В каждом проекте по-умолчанию будет подключена панель администратора, через которую можно управлять сайтом и базой данных.
Сайты на Джанго
На сегодняшний день существует большое количество популярных сайтов, которые созданы именно при помощи этой технологии, среди них:
- Google - крупнейший сайт на Django. Является поисковой системой;
- YouTube - крупнейший видеохостинг;
- Instagram - популярное приложения для обмена фото и видео;
- Pinterest - крупнейший социальный интернет-сервис;
- The Washington Times - популярная всемирная газета.
Это только небольшой список тех компаний, которые используют эту технологию в своих продуктах.
Как видите, перспективы изучения Django очень большие, так как сейчас все больше и больше крупных компаний ищут специалистов со знаниями именно этой библиотеки.
Какие знания нужны?
Для разработки сайтов на Джанго вам потребуется изначально изучить язык Питон. Посколько весь синтаксис будет написан именно на языке Питон, то без его знания вам будет сложно понять данную тему и разобраться в ней. Курс по изучению языка Питон есть на нашем сайте. Вы можете его просмотреть по этой ссылке .

Помимо Питон вам также нужно уметь работать с языком разметки HTML и языком стилей CSS . Без этих языков вам не удастся написать разметку веб страницы, поэтому перед курсом также стоит изучить HTML и CSS.
Дополнительно обязательных знаний не требуется и вы можете приступать к изучению курса. Все D jango уроки представлены на нашем сайте в полной мере.
План курса
За D jango курс мы изучим все основные положения фреймворка Django, а также создадим P ython сайт . Для реализации стилей на сайте мы будем использовать библиотеку Bootstrap (уроки по ней можно посмотреть здесь ), а для связи с базой данных мы будем использовать встроенную ORM систему, которая позволяет создавать таблицы в базе данных на основе классов в Python.
Программа обучения
Также на нашем сайте есть более углубленные Python Django уроки в программе по изучению языка Питон и его библиотек. За программу вы узнаете создание сайта на Python, изучите все моменты как написать сайт на Питоне, разработать на его основе программы под мобильные приложения и многое другое. Ознакомится с программой обучения можно по этой ссылке .
Задание к уроку
Небольшая теория
Что такое Django и какая основная цель его использования?