Реляционные базы данных
Django прекрасно работает и с MySQL, PostgreSQL, SQLite, Oracle — все это реляционные базы данных.
Реляционные — это значит relational, relation — отношения, в нашем случае отношения между таблицами в нашем случае.
В прошлом уроке мы создали простое Django приложение “houses” и подключили его к проекту. А сейчас начнем его настраивать и начнем с файла models.py, в котором мы определим структуру данных приложения.
models.py — отвечает за описание нашей будущей базы данных
Внутри его, создаем класс House унаследованный от models.Model
В терминах Django класс House называется моделью и модель House отвечает за конкретный дом, который мы будем продавать клиенту.
Начинаем заполнять нашу таблицу. Таблицы в ORM оформляются в виде классов.
class House(models.Model):
pass
Наши дома имеют определенные характеристики вроде:
- Цены
- Площади
- Материала изготовления
Эти характеристики задаются внутри модели и называются полями модели
(переменные — колонки базы данных)
Создадим заголовок, первую колонку
name = models.CharField(«название», max_length=200)
# CharField — подразумевает собой набор символов
# max_length=200 — максимальная длина символов в строке
Создадим еще одно поле price, во вторую колонку
price = models.IntegerField(«цена»)
# IntegerField — может принимать и хранить целые числа
# “цена” — русское название поля price
Добавим еще одно поле description типа TextField в третью колонку
# TextField — в отличии от CharField, может хранить тексты произвольной длинны (для больших массивов текстовой информации) и его не нужно ограничивать параметром max_lenght
descriptions = models.TextField(“описание”)
Дополнительно
# models.DateTimeField — используется для хранения даты публикации статьи, это формат хранения как времени так и даты
# models.DateField — хранит только дату
# models.IntegerField — хранит цифровые целочисленные значения
class Meta — включает в себя дополнительные свойства для нашей будущей таблицы.
Нас интересует название таблицы, мы не хотим, чтобы Django самостоятельно давал название нашей таблицы, по-этому мы описываем это в классе Meta. Его нужно поместить во внутрь класса House (sites -> dom_u_morya -> houses)
файл models.py
сlass House(models.Model):
class Meta():
db_table = «new_houses»
Более современные требования требует дополнительных параметров
class House(models.Model):
house_name = models.CharField(«Название», max_length=200, default=«»)
house_price = models.IntegerField(«Цена», default=0)
house_description = models.TextField(«Описание», default=«»)
И так в нашей модели House есть три поля, которые описывают его структуру
Теперь нам нужно спроектировать модель и базу данных или иными словами создать таблицу в базе данных таблицу, которая будет соответствовать нашей модели. Django умеет работать с ра