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?
7 августа 2013 г.
Archy
Просмотров: 106109
RSS
25
Разработка интернет-приложений » Python для начинающих » Общие вопросы
python vs php, сайты на python, создание сайта на python

Python очень легкий язык программирования с низким порогом вхождения. Те программисты которые уже знают любой другой язык программирования будь то PHP, Java или C подобные языки, то понимание языка Python будет намного выше. Ассоциируя уже имеющие знания другого языка программирования с новыми функциями и модулями Python, вы легко смоете понять логику работы Python. В сравнении с PHP, Python не выполняет только одну задачу. Он применяется в разных отраслях, таких как создание программ, приложений в смарфоне, игр и сайтов.
По скорости работы и выполнения тех же задач, Python и PHP работают практически одинаково. Дальнейший выбор на каком языке программирования делать сайты это дело вкуса. В изучении Python есть больше плюсов нежели в программировании на PHP. Согласен, на PHP вы создадите сайт за несколько минут, но в Python вам придется изучить хотя бы основы языка потом уже понять как работают его фреймворки для создания сайтов.
Делать сайты на Python перспективнее?
Да. PHP ограничен одними сайтами и развивается в сторону веб (для чего он и был создан). Python в свою очередь, развивается в разные стороны, это даст вам шанс в будущем сменить свою работу и начать делать, например, программы вместо сайтов не меняя язык программирования. Вам не придется изучать опять новый язык программирования чтобы сменить род деятельности т.е. перескочить с сайтостроения на написание приложении для android, apple, symbian и т.д.
Еще один плюс в сторону Python в том, что он строго типизирован как и Java. Этот язык обучит вас хорошим манерам программиста и не даст волю творить хаос в коде. Но, не будем все обобщать, творить бессмыслицу можно и на Python и делать шедевры на том же PHP. Python научит разделать код на логические блоки чтобы понимать где зона выполнения цикла, где заканчивается один IF и начинается другой и т.д. На PHP тоже можно структурировать код на логические блоки, но там это не обязательно, следовательно новичок может написать код в одну строку и ему ничего не будет, в момент когда Python новичок получит ошибку и начнет править код.
С чего начать создание сайтов на Python?
Если вы хотите создать сайт на HTML то для этого Python вам не нужен, достаточно купить любой хостинг и загрузить файлы сайта. В случае если у вас более серьезные планы и динамические планы на свой сайт то нужно определится с выбором python фреймворка для создания сайта. Небольшой список фреймворков: Django, Pylons, TurboGears, Twisted, CherryPy. Мы остановимся на Django т.к. на данный момент он является самым популярным фреймворком для создании сайтов на Python.
Почему выбрать Django?
Хорошая документация - документация данного фреймворка выполнена на высшем уровне. Все статьи написаны понятным языком и снабжены примерами и объяснениями которые не освятят ни единого вопроса. Есть даже книги на русском языке по данному фреймворку которые занимают лидирующие места продаж в своем разделе.
Самостоятельная генерация админ панели - Это пожалуй самая уникальная сторона Django по сравнению с другими фреймворками а том же PHP. Данная возможность поможет вам выиграть во времени написания сайта т.к. создание админ интерфейса сводится наброску нужных моделей и можно уже начать работать с сайтом.
Поддержка паттерна MTV (Model-Template-View) - он напоминает классический MVC. MTV разделяет бизнес логику от дизайна, что очень хорошо сказывается на будущее огромного проекта которого будет поддерживать несколько людей. Пока дизайнер будет разбираться каким цветом и шрифтом он выведет мета теги, меню сайта и текст то программист независимо от дизайнера, будет писать для сайта функционал. Это позволит увеличить КПД в работе сайта.
Да и работать в кругах программистов авторитетнее на Python, C#, Java. PHP хороший язык программирования он будет жить и занимать лидирующее место инструмента создании сайтов еще много лет, но вы же не хотите ограничивать свои возможности только на создании сайтов?
Еще записи по теме
- Создание базы данных SQLite в Python
- Основы SQLite - С чего начать?
- С чего начинаем программировать?
- Доступ к базе данных SQLite из Python
- Игровой слот Golden Goddess - играй на деньги в самые прибыльные автоматы
- Элементарная напоминалка для Linux
- ПМ Казино: популярные игры
Как создать сайт на python без использования фреймворков?
Как создать сайт на python без использования фреймворков? Просто в общем скажите, что нужно сделать. Детали я сам погуглю P.S. Я знаю, что это создание велосипедов, но это мне нужно для изучения работы веб приложений в частности и обучения программированию в общем
Отслеживать
задан 24 ноя 2020 в 16:09
383 2 2 серебряных знака 7 7 бронзовых знаков
python -m pureSite Только модуль нужно написать
24 ноя 2020 в 16:10
а чем не устраивает джанго ?
24 ноя 2020 в 16:11
Изучить спецификацию CGI/WSGI/ASGI (по вкусу), написать код по спецификации и запустить подходящим веб-сервером. Ну или набраться смелости, чтобы изучить спецификацию HTTP и написать свой собственный веб-сервер
24 ноя 2020 в 16:14
@andreymal HTTP проще чем все вышеперечисленное,)
24 ноя 2020 в 17:17
@eri триста страниц спецификации HTTP/1.1 это по-вашему проще?) И это я ещё про HTTP/2 не вспоминаю)
24 ноя 2020 в 17:54
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Отличный вопрос - зря минусим.
В каталоге проекта
создай папку ./cgi-bin напиши файлик ./cgi-bin/index.py с содержимым
#!/bin/python3 print("Content-Type: text/html") # Хидеры ответа print() # Пустая строка сразу после хидеров # А потом текст ответа print("CGI script output ") print("This is my first CGI script
") print("Hello, world!")
Сделай скрипт исполнимым
chmod +x ./cgi-bin/index.py
И запукай http сервер (можно через apache или lighttpd)
python3 -m http.server --cgi 8000
Переходи по ссылке http://localhost:8000/cgi-bin/index.py и вот Hello-Word на чистом питоне готов.
Вариант чуть посложнее с одним модулем
import http.server class Handler(http.server.BaseHTTPRequestHandler): def do_GET(self): self.send_response(200, 'OK') self.send_header('Content-Type', 'text/html') self.end_headers() self.wfile.write(''' Handler script output This is my first Handler script
Hello, world! '''.encode()) httpd = http.server.HTTPServer(('', 8000), Handler) httpd.serve_forever()
Тут нет обработчика URI и один ответ будет на всех страницах.
Отслеживать
ответ дан 24 ноя 2020 в 16:33
33.6k 3 3 золотых знака 26 26 серебряных знаков 60 60 бронзовых знаков
В стандартной библиотеке Python есть модуль http.server. Это HTTP-сервер, на основе которого можно создавать сайты любой сложности. Конечно, чем больше сложность, тем больше вам придётся написать функциональности, которая уже есть во фреймворках. Но если вам нужен сервер для отладки или вы хотите понять как что устроено, то начните с него.
Отслеживать
3,585 3 3 золотых знака 17 17 серебряных знаков 23 23 бронзовых знака
ответ дан 24 ноя 2020 в 16:27
Stanislav Volodarskiy Stanislav Volodarskiy
30.2k 3 3 золотых знака 18 18 серебряных знаков 55 55 бронзовых знаков
Если прям без фреймворка, то cgi. Но. зачем? Есть же фреймворки.
Flask — фреймворк для создания веб-приложений на языке программирования Python, использующий набор инструментов Werkzeug, а также шаблонизатор Jinja2. Относится к категории так называемых микрофреймворков[en] — минималистичных каркасов веб-приложений, сознательно предоставляющих лишь самые базовые возможности.
Django (Джанго, ['dʒæŋɡoʊ][6]) — свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC[7]. Проект поддерживается организацией Django Software Foundation.
Уроки 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 и какая основная цель его использования?
