Начало разработки с django

Всё что здесь описывается делается на операционной системе linux с третьей версией питона

для того, чтобы начать проект вводим

mkdir test1 && cd test1

Создаём виртуальное окружение, чтобы  не засорять общее. Плюсом виртуального окружения так же является удобство развёртывания приложения. Если у вас не установлен virtualenv, его можно установить следующей командой sudo apt install virtualenv. После установки виртуального окружения, мы можем активировать его командой source.

virtualenv venv --python=python3
source venv/bin/active

Устанавливаем django

pip install django

После установки у нас станет доступна команда django-admin. Для создания структуры проекта пишем

django-admin startproject test1 .

, где test1 - название текущего проекта/папки, а точкой мы обозначаем что проект нужно создать в текущей папке. В противном случае можно вместо точки написать название директории и тогда проект установится во вложенной папке.

Миграции

Приложение, написанное на django обычно использует механизм миграций. Миграции - это определённые инструкции как меняется база данных. Механизм изменения базы данных через миграции позволяет держать схему базы данных синхронной на нескольких компьютерах. 

Рассмотрим пример.

Вы сделали миграцию - добавляете таблицу статей. После того как вы применили миграцию (создали таблицу) вы получаете на локальной машине какое-то состояние (текущая схема базы данных). Чтобы скопировать это состояние на сервер без миграций - Вам пришлось бы вручную выполнять тот же самый скрипт создания таблицы на сервере, но с механизмом миграций вы просто запускаете команду ./manage.py migrate и таблицы создаются автоматически.

По умолчанию django работает с базой данных sqlite. В django можно использовать различные базы данных и зачастую Вам не нужно будет дописывать какой-то код. Если вы не делали запросов к базе данных вручную (sql кодом), то можно просто сменить драйвер и перейти на другую базу данных. Одна из самых популярных баз данных, которую используют при строительстве django приложений - postgresql. В этой статье мы будем использовать базу данных по умолчанию.

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

./manage.py migrate


Имейте ввиду, что django сразу создаст базу данных sqlite, которая находится в корне проекта под название db.sqlite3. В этой базе он создаёт необходимые ему таблицы, которые мы обсудим в других статьях.

Приложения

Изначально при создании проекта в django мы получаем голую структуру без приложений. Приложения в django - это отдельные модули. Приложением может быть форум, или блог, или какой-то отдельный функционал. Так один проект может иметь несколько модулей (приложений). Обычно в каждом проекте у менять есть одно главное приложение - main. Я использую его для общих моделей и общего функционала. Для создания базового приложения пишем

./manage.py startapp main

Мы можем так же создать приложение до миграции. 

Запуск сервера

Вводим команду 

./manage.py runserver

Команда запустит проект по адресу http://localhost:8000/. Вы можете проверить это перейдя по этому адресу в Вашем любимом браузере.

Видео


Продолжение следует...