НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

Django Підручник

Django Головна Django Інтро Django Почати навчання Створення віртуального середовища Встановити Django Django Створити проєкт Django Створити додаток Django Представлення Django URL Django Шаблони Django Моделі Django Вставити дані Django Оновити дані Django Видалити дані Django Оновити модель

Відображення даних

Підготувати шаблон і переглянути Додати посилання на деталі Додати головний шаблон Додати головну Index сторінку Django 404 Шаблон Додати Test перегляд

Адмін

Django Адмін Створити користувача Включити моделі Відображення списку установок Оновити учасників Додати учасників Видалити учасників

Django Синтаксис

Django Змінні Django Теги Django If Else Django Цикл For Django Коментар Django Include

QuerySets

QuerySet Інтро QuerySet Get QuerySet Фільтр QuerySet Order By

Статичні файли

Додати статичні файли Встановити WhiteNoise Зібрати статичні файли Додати глобальні статичні файли Додати стилі до проєкту

PostgreSQL

PostgreSQL Інтро Створити обліковий запис AWS Створити бази даних у RDS Підключитися до бази даних Додати учасників

Розгортання Django

Elastic Beanstalk (EB) Створити requirements.txt Створити django.config Створити .zip файл Розгорнути із EB Оновити проєкт

Більше Django

Додати Slug Field Додати Bootstrap 5

Django Довідники

Довідник тегів шаблону Довідник фільтра Довідник Пошуку полів

Django Вправи

Django Компілятор Django Вправи Django Вікторина Django Сервер Django Сертифікат

Django. Уроки для початківців

En Es De

Django Моделі


Модель Django — це таблиця у вашій базі даних.


Django Моделі

Дотепер у цьому підручнику виводом були статичні дані з шаблонів Python або HTML.

Тепер ми побачимо, як Django дозволяє нам працювати з даними, не змінюючи чи завантажуючи файли під час процесу.

У Django дані створюються в об’єктах, які називаються моделями, і насправді є таблицями в базі даних.


Створити таблицю (модель)

Щоб створити модель, перейдіть до файлу models.py у папці /members/.

Відкрийте його та додайте таблицю Member, створивши Member class і опишіть поля таблиці в ньому:

my_tennis_club/members/models.py:

from django.db import models

class Member(models.Model):
  firstname = models.CharField(max_length=255)
  lastname = models.CharField(max_length=255)

Перше поле, firstname, є текстовим полем і міститиме імена учасників.

Друге поле, lastname, також є текстовим полем із прізвищем учасника.

Як firstname, так і lastname налаштовано на 255 символів.

SQLite База даних

Коли ми створили проєкт Django, ми отримали порожню базу даних SQLite.

Його було створено в кореневій папці my_tennis_club і має назву файлу db.sqlite3.

За замовчуванням усі моделі, створені в проєкті Django, будуть створені як таблиці в цій базі даних.


Міграція (Перенесення)

Тепер, коли ми описали модель у файлі models.py, ми повинні виконати команду для фактичного створення таблиці в базі даних.

Перейдіть до папки /my_tennis_club/ і виконайте цю команду:

py manage.py makemigrations members

Що призведе до цього результату:

Migrations for 'members':
  members\migrations\0001_initial.py
    - Create model Member

(myworld) C:\Users\Your Name\myworld\my_tennis_club>

Django створює файл із описом змін і зберігає його в папці /migrations/:

my_tennis_club/members/migrations/0001_initial.py:

# Generated by Django 4.1.2 on 2022-10-27 11:14

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Member',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('firstname', models.CharField(max_length=255)),
                ('lastname', models.CharField(max_length=255)),
            ],
        ),
    ]

Зауважте, що Django вставляє поле id для ваших таблиць, яке є auto increment number (числом автоматичного збільшення) (перший запис отримує значення 1, другий запис 2 тощо), це стандартна поведінка Django, ви можете змінити її, описавши власне поле id.

Таблицю ще не створено, вам доведеться виконати ще одну команду, а потім Django створить і виконає інструкцію SQL на основі вмісту нового файлу в папці /migrations/.

Виконайте команду міграції:

py manage.py migrate

Що призведе до цього результату:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, members, sessions
Running migrations:
  Applying members.0001_initial... OK

(myworld) C:\Users\Your Name\myworld\my_tennis_club>

Тепер у вашій базі даних є таблиця Member!


Представити SQL

Як додаткова примітка: ви можете представити SQL інструкцію, яку було виконано під час міграції вище. Все, що вам потрібно зробити, це виконати цю команду з номером міграції:

py manage.py sqlmigrate members 0001

Що призведе до цього результату:

BEGIN;
--
-- Create model Member
--
CREATE TABLE "members_member" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "firstname" varchar(255) NOT NULL, "lastname" varchar(255) NOT NULL); COMMIT;


Коментарі