Найти тему
IT штучки

Как создать сайт за 5 минут? (Python3, Django)

Сегодня речь пойдет о создании сайта на языке Python, с использованием фреймворка Django.

Оговорюсь, что эта статья написана для людей знакомых с языком Python. Если Вы знаете, как написать "Hello, World!" - значит Вы можете написать сайт, но а продвинутым знатокам языка эта статья не покажет ничего нового.

Для работы будем использовать настроенную виртуальную машину (ВМ) с Ubuntu Server 18.04. В этой статье описано, создание данной конфигурации.

Для работы мы будем использовать виртуальное окружение (ВО) python и web-сервер apache. Перейдем к установке компонентов:

sudo apt-get install -y python3-pip

устанавливаем пакетный менеджер pip.

sudo apt-get install -y python3-venv

устанавливаем пакет виртуального окружения.

cd ~/ && python3 -m venv venv

переходим в домашнюю директорию и создаем виртуальное окружение в каталоге ~/venv/ (второе слово "venv").

Знак ~ (тильда) заменяется командной оболочкой, как путь к домашней директории текущего пользователя.

Если у Вас не установлен web-сервер Apache, установить его нужно командой ниже:

sudo apt-get install -y apache2

Теперь нам нужно активировать виртуальное окружение, чтобы в него установить необходимые пакеты.

source ~/venv/bin/activate

Активируем ВО.

В консоли, в начале строки, должно появится слово venv

Устанавливаем пакет Django в Virtual environment, следующей командой:

pip3 install django

Теперь нужно создать проект с нашим сайтом, я рекомендую создать для этого отдельную папку (например ~/Projects ). Перейти туда и создать django-проект, командой ниже (с активированным виртуальным окружением):

django-admin startproject MySite

Утилита создала каталог "MySite" (линукс - система чувствительная к регистру букв). Переходим в него

cd MySite

Мы создали проект Django, давайте добавим приложение, с названием"app", в котором и будет основная логика нашего сайта. Выполним команду:

django-admin startapp app

Чтобы наш проект "MySite", понимал что есть приложение с которым надо работать в файле settings.py необходимо добавить строку "app" в список INSTALLED_APP. Сразу добавим " '*' " в список разрешенных хостов, чтобы разрешить все адреса.

-2

Давайте запустим, то, что у нас получилось на данном этапе. Перейдем в корень проекта ~/Projects/MySite/, здесь должен быть "управляющий" файл "manage.py". Выполним команду для запуска отладочного сервера.

python3 manage.py runserver
-3

Теперь сервер запущен и сайт работает по адресу 127.0.0.1 на 8000 порту.

Теперь сделаем так, чтобы вместо страницы приветствия отображалась наша страница с проектом. Django - фреймворк, работающий по принципу MVC (модель, представление, контроллер), т.е. в файле с нашим приложением ~/Projects/MySite/app/models.py должны быть классы моделей, которые будут сущностями в базе данных. Файл ~/Projects/MySite/app/views.py - контроллер в концепции MVC для Django, в нем должны храниться классы или функции, которые управляют данными. Представление же, это HTML страница, на которой, собственно, отображаются данные.

Создадим каталог, в котором будут лежать наши html страницы. В каталоге приложения создаем папку templates.

-4

В каталоге с шаблонами создаем файл index.html. Содержимое файла может быть любым, на Ваш вкус.

Теперь отредактируем файл контроллера (views.py), чтобы он отдавал данные в нашу html страницу. Создадим функцию, которая будет отображать на сайте "Hello, World!".

from django.shortcuts import render
def index(req):
content = {
'welcome': 'Hello, World!'
}
return render(req, 'index.html', content)

Функция render выполнит нашу index.html и подставит в нее данные из словаря content. Чтобы указать проекту, где искать наши представления редактируем файл settings.py. Нужно найти список TEMPLATES и привести его к виду, как на рисунке

-5

Для отображения фразы на странице, в index.html нужно добавить строку:

{{ welcome }} в то место, где вы хотите отобразить "Hello, World!"

-6

В нашем случае все почти готово, осталось задать адресацию сайта. Переходим в каталог с проектом и редактируем файл ~/Projects/MySite/MySite/urls.py. Нам необходимо указать по какому маршруту будет отображаться наша страница (файл приводим к виду указанному на рисунке ниже)

-7

Далее, скопируем файл urls.py в директорию с нашим приложением:

cp ~/Projects/MySite/MySite/urls.py ..//app/

Приведем его к следующему виду:

-8

Для проверки запустим отладочный сервер:

python3 manage.py runserver

Сайт должен отображать нужную фразу!

Программа-минимум выполнена, остается запустить сайт через WEB-сервер Apache.

Для этого, просто приведите файл /etc/apache2/sites-available/000-default.conf (от имени администратора) к виду, представленному ниже:

-9

Перезагружаем apache2

sudo systemctl restart apache2

Готово.

-10
Я стараюсь писать без терминов, умных слов и лишних объяснений. Статьи рассчитаны на новичков с IT сфере.
Спасибо за внимание!

Наука
7 млн интересуются