Django基本应用模型-Makemigrations和Migrate

Django基本应用模型-Makemigrations和Migrate

在这篇文章中,我们将创建一个应用程序的基本模型。比如,我们有一个项目geeksforgeeks,在这个项目中,我们将创建一个新的应用程序,以简化和制作独立的模型单元。

要创建一个应用程序,通过终端运行命令。

python manage.py startapp geeks

并在settings.py中把geeks加入INSTALLED_APPS列表。现在应用程序的目录结构将是。

Django基本应用模型--Makemigrations和Migrate

现在转到geeks应用程序中的models.py,在这里我们将创建我们的第一个模型。要创建一个模型,你需要先从django.db.models库中导入模型。

现在models.py将看起来像。

# importing Model from django
from django.db.models import Model

根据Django文档,模型是关于你的数据的单一、明确的信息来源。它包含了你所存储的数据的基本字段和行为。一般来说,每个模型映射到一个数据库表。

Django提供了一些预定义的字段和方法来创建一个模型。要创建一个模型,你需要先指定一个模型名称。

在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 

在你运行makemigrations和迁移后,数据库中会创建一个新表。你可以从geek -> 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基本上为预装的应用程序(可以在settings.py中的installed apps中查看)和你在installed apps中添加的新创建的应用程序的模型生成SQL命令。它不会在你的数据库文件中执行这些命令。所以表在makemigrations之后不会被创建。

应用makemigrations后,你可以通过sqlmigrate看到这些SQL命令,它显示了所有由makemigrations生成的SQL命令。要查看更多关于makemigrations的信息,请访问 – Django应用模型 – Python manage.py makemigrations命令

Migrate –

migrate在数据库文件中执行这些SQL命令。因此,在执行了migrate之后,你所安装的应用程序的所有表都在数据库文件中被创建。

你可以通过安装sqlite浏览器并打开db.sqlite3来确认这一点,你可以看到执行migrate命令后,所有的表都出现在数据库文件中。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程