上一篇django文章中,苏南大叔描述的是系统默认数据库的迁移migrate方式。在本文中,苏南大叔描述的就是:django程序猿自己编写的代码中,数据库的定义及导入方式。本文涉及到的例子,还是django官方tutorial中的polls例子。

苏南大叔:django如何建立app应用模型?如何预览模型sql语句? - django-model
django如何建立app应用模型?如何预览模型sql语句?(图6-1)

本文测试环境:python@3.7.4django@2.2.4mac

编写模型代码

polls/models.py:

from django.db import models
class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __str__(self):
        return self.question_text

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    def __str__(self):
        return self.choice_text

其中,__str__()这是个特殊的私有函数。用于在格式化输出对应的模型类。至于模型中的字段类型,外键之类的信息。本文就不做更多的详细描述了。

苏南大叔:django如何建立app应用模型?如何预览模型sql语句? - django-models
django如何建立app应用模型?如何预览模型sql语句?(图6-2)

激活模型

mysite/settings.py中,INSTALLED_APPS环节,添加识别'polls.apps.PollsConfig'。其中,polls.apps.表示文件polls/apps.py

mysite/settings.py:

INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

苏南大叔:django如何建立app应用模型?如何预览模型sql语句? - django-settings
django如何建立app应用模型?如何预览模型sql语句?(图6-3)

制作迁移文件

下面制作包含pollsmodels.py的数据库信息的migration文件。命令如下:

python manage.py makemigrations polls

迁移文件的存储路径是: polls/migrations/0001_initial.py

苏南大叔:django如何建立app应用模型?如何预览模型sql语句? - django-makemigrations
django如何建立app应用模型?如何预览模型sql语句?(图6-4)

预览迁移sql语句(可选)

本步骤仅仅是预览,并不会真正执行sql。所以,本步骤是个可选步骤。其命令如下:

python manage.py sqlmigrate polls 0001

苏南大叔:django如何建立app应用模型?如何预览模型sql语句? - django-sqlmigrations
django如何建立app应用模型?如何预览模型sql语句?(图6-5)

正式迁移导入数据库

这个步骤就很熟悉了,执行的命令如下:

python manage.py migrate

参考文章:

苏南大叔:django如何建立app应用模型?如何预览模型sql语句? - django-model-migrate
django如何建立app应用模型?如何预览模型sql语句?(图6-6)

相关链接

结束语

苏南大叔在本文中描述了django里面,自定义的app应用里面的模型数据库导入方式。和系统数据库的导入方式有雷同步骤,但是也还有自己独特的步骤。另外,导入的细节上,苏南大叔并没有做过多描述。在后续django相关博客文章中,苏南大叔将会有所涉及。欢迎您关注订阅苏南大叔的django博客文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   python    django

本站的忠实读者小伙伴,正在阅读下面这些文章: