Перейти к содержимому

Как создать свой сайт на python

  • автор:

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

Python 3 логотип

Проще всего создать динамические страницы на 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
  • Реклама на сайте

Уроки Django

Уроки Django (Создание сайта) / Урок #1 - Введение в фреймворк Django

Python – мощный язык, функциональность которого увеличивается при использовании дополнительных библиотек. В видео курсе мы изучим популярный фреймворк Django и построим полноценный веб сайт на основе Джанго.

Видеоурок

Информация про Джанго

Язык Python универсальный и на его основе можно писать приложения для различных целей. Создать сайт на Python вполне возможно, но сайт на питоне гораздо проще создается при использовании Д жанго Питон. При помощи дополнительных библиотек можно создавать как приложения, так и веб сайты. К примеру, для создания игр на Python понадобиться библиотека Pygame , а для создания сайтов – Django .

Зачем нужен Джанго?

Писать сайты на Питон на самом деле можно и без использования сторонних библиотек или же фреймворков. В то же время, написание сайта на основе лишь Python – это долгий и сложный процесс. Чтобы облегчить дело были придуман отдельные фреймворки или, другими словами, готовые решения для ускорения процесса построения сайта.

Джанго создан на основе языка Питон. За счёт Django вы можете намного проще и быстрее создавать как легкие, так и сложные веб сайты.

На самом деле, Джанго не является монополистом и помимо него существуют другие Фреймворки, обеспечивающие схожую функциональность. Несмотря на остальных Джанго удобно себя чувствует на месте лидера в теме разработки сайтов на питон.

Преимущества Джанго

Преимущество Джанго перед другими фреймворками заключается в огромном наборе готового функционала, за счет которого можно быстро и просто создать систему регистрации на сайте, добавить форум на сайт, реализовать систему поиска по сайту или выполнить какое-то другое действие на сайте.

В Джанго используется схема MVC. Это схема позволяет удобно разбить файлы на одну из трех категорий: HTML шаблоны, файлы модели для работы с базой данных и файлы контроллеры для связи моделей и HTML шаблонов между собой.

Одна из ключевых особенностей Джанго в том, что вы можете скачать отдельную часть проекта и добавить её в свой проект, просто заменив ссылки на нужные для вас.

Сайты на Джанго можно создавать быстро, они обладают шустрой подгрузкой, а также могут выдерживать большие нагрузки. В каждом проекте по-умолчанию будет подключена панель администратора, через которую можно управлять сайтом и базой данных.

Сайты на Джанго

На сегодняшний день существует большое количество популярных сайтов, которые созданы именно при помощи этой технологии, среди них:

  1. Google - крупнейший сайт на Django. Является поисковой системой;
  2. YouTube - крупнейший видеохостинг;
  3. Instagram - популярное приложения для обмена фото и видео;
  4. Pinterest - крупнейший социальный интернет-сервис;
  5. The Washington Times - популярная всемирная газета.

Это только небольшой список тех компаний, которые используют эту технологию в своих продуктах.

Как видите, перспективы изучения Django очень большие, так как сейчас все больше и больше крупных компаний ищут специалистов со знаниями именно этой библиотеки.

Какие знания нужны?

Для разработки сайтов на Джанго вам потребуется изначально изучить язык Питон. Посколько весь синтаксис будет написан именно на языке Питон, то без его знания вам будет сложно понять данную тему и разобраться в ней. Курс по изучению языка Питон есть на нашем сайте. Вы можете его просмотреть по этой ссылке .

Помимо Питон вам также нужно уметь работать с языком разметки HTML и языком стилей CSS . Без этих языков вам не удастся написать разметку веб страницы, поэтому перед курсом также стоит изучить HTML и CSS.

Дополнительно обязательных знаний не требуется и вы можете приступать к изучению курса. Все D jango уроки представлены на нашем сайте в полной мере.

План курса

За D jango курс мы изучим все основные положения фреймворка Django, а также создадим P ython сайт . Для реализации стилей на сайте мы будем использовать библиотеку Bootstrap (уроки по ней можно посмотреть здесь ), а для связи с базой данных мы будем использовать встроенную ORM систему, которая позволяет создавать таблицы в базе данных на основе классов в Python.

Программа обучения

Также на нашем сайте есть более углубленные Python Django уроки в программе по изучению языка Питон и его библиотек. За программу вы узнаете создание сайта на Python, изучите все моменты как написать сайт на Питоне, разработать на его основе программы под мобильные приложения и многое другое. Ознакомится с программой обучения можно по этой ссылке .

Задание к уроку

Небольшая теория

Что такое Django и какая основная цель его использования?

Как создать сайт на 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
34.9k 3 3 золотых знака 28 28 серебряных знаков 62 62 бронзовых знака

В стандартной библиотеке Python есть модуль http.server. Это HTTP-сервер, на основе которого можно создавать сайты любой сложности. Конечно, чем больше сложность, тем больше вам придётся написать функциональности, которая уже есть во фреймворках. Но если вам нужен сервер для отладки или вы хотите понять как что устроено, то начните с него.

Отслеживать
3,603 3 3 золотых знака 17 17 серебряных знаков 23 23 бронзовых знака
ответ дан 24 ноя 2020 в 16:27
Stanislav Volodarskiy Stanislav Volodarskiy
32.7k 3 3 золотых знака 20 20 серебряных знаков 56 56 бронзовых знаков

Если прям без фреймворка, то cgi. Но. зачем? Есть же фреймворки.

Flask — фреймворк для создания веб-приложений на языке программирования Python, использующий набор инструментов Werkzeug, а также шаблонизатор Jinja2. Относится к категории так называемых микрофреймворков[en] — минималистичных каркасов веб-приложений, сознательно предоставляющих лишь самые базовые возможности.

Django (Джанго, ['dʒæŋɡoʊ][6]) — свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC[7]. Проект поддерживается организацией Django Software Foundation.

CGI: пишем простой сайт на Python. Часть 3: Пример приложения

Python 3 логотип

Мы уже научились обрабатывать формы и устанавливать cookies. Сегодня же мы посмотрим, что может из этого получиться.

Чтобы работать с пользовательскими данными, нужно где-то эти данные сохранять. Самый простой (но далеко не самый изящный и безопасный) - хранение данных в файлах. Более продвинутый способ - хранение в базе данных. Мы остановимся на первом способе, как на самом простом.

Собственно, ничего нового здесь объясняться не будет. Работу с файлами вы уже знаете, обрабатывать формы уже умеете.

Сегодня мы напишем прототип приложения типа "твиттер". Данные в файлах будем хранить в json.

Создадим 2 файла: один будет отвечать за обработку данных, вводимых пользователем, второй - вспомогательный модуль, который упростит код первого.

cgi-bin/wall.py:

    Стена  Форма логина и регистрации. При вводе несуществующего имени зарегистрируется новый пользователь. Логин: Пароль:  Здесь мы используем форматирование строк для формирования страницы (кстати, это первый шаг на пути к созданию собственного шаблонизатора).

Не забудьте дать этому файлу права на выполнение (второму файлу эти права не нужны).

cgi-bin/_wall.py (здесь определены функции publish, login и другие):

        Разумеется, в нашем простом "твиттере" очень много недостатков: не выводятся предупреждения пользователю, регистрация при несуществующем имени, пароли хранятся в открытом виде, использованные куки не удаляются, и многие другие. Кто хочет, может усовершенствовать.

Но есть и преимущество: поскольку у нас теперь 2 разных файла (почти независимых), то можно поменять систему хранения данных (например, база данных вместо файлов), вообще не затрагивая wall.py.

Напоследок покажу, как это работает:

Сначала зарегистрировались, теперь нужно ещё раз ввести логин-пароль, чтобы войти.

В следующей (возможно последней) части я покажу, как это всё можно опубликовать в сети интернет.

Для вставки кода на Python в комментарий заключайте его в теги

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *