Базовая модель приложения Django - Makemigrations и Migrate
В этой статье мы создадим базовую модель приложения. Скажем, у нас есть проект geeksforgeeks, в котором мы создадим новое приложение для упрощения и создания независимых единиц модели.
Чтобы создать команду запуска приложения через терминал:
Вундеркинды startapp с python manage.py
and add geeks to INSTALLED_APPS list in settings.py
. Now directory structure of the app will be,
Now go to models.py
in geeks app, Here we will create our first model. To create a model you need to first import the Model from django.db.models
library.
Now models.py will look like,
# importing Model from django from django.db.models import Model |
Согласно документации Django, модель - это единственный исчерпывающий источник информации о ваших данных. Он содержит основные поля и поведение данных, которые вы храните. Как правило, каждая модель отображается в одну таблицу базы данных.
Django предоставляет ряд предопределенных полей и методов для создания модели. Чтобы создать модель, вам нужно сначала указать название модели.
Enter the following code into models.py
from django.db import models from django.db.models import Model # Created an empty model class GeeksModel(Model): pass |
Подобный синтаксис всегда будет использоваться для создания модели.
После внесения каких-либо изменений в любой файл модели приложения вам необходимо запустить следующую команду из терминала
Python manage.py makemigrations
После этой команды выполните следующую команду, чтобы, наконец, внести соответствующие изменения в базу данных.
Python manage.py migrate
After you run makemigrations and migrate a new table would have been created in database. You can check it from geeks -> makemigrations -> 0001_initial.py.
# Generated by Django 2.2.5 on 2019-09-25 06:00 from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name = "GeeksModel" , fields = [ ( "id" , models.AutoField(auto_created = True , primary_key = True , serialize = False , verbose_name = "ID" )),], ), ] |
Давайте четко разберемся, что делают Makemigrations и Migrate.
Makemigrations -
makemigrations в основном генерирует команды SQL для предустановленных приложений (которые можно просмотреть в установленных приложениях в settings.py) и модель ваших вновь созданных приложений, которую вы добавляете в установленные приложения. Он не выполняет эти команды в вашем файле базы данных. Таким образом, таблицы не создаются после makemigrations.
После применения makemigrations вы можете увидеть эти команды SQL с помощью sqlmigrate, который показывает все команды SQL, сгенерированные makemigrations. Чтобы узнать больше о makemigrations, посетите - Модель приложения Django - Команда Python manage.py makemigrations
Миграция -
migrate выполняет эти команды SQL в файле базы данных. Итак, после выполнения миграции все таблицы установленных приложений будут созданы в вашем файле базы данных.
You can confirm this by installing sqlite browser and opening db.sqlite3
you can see all the tables appears in the database file after executing migrate command. To check more about makemigrations visit Django manage.py migrate command | Python
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.