Django入门第二篇—模型。模型的作用,如何定义和使用Django模型。查询sqllite数据库表结构。

Django入门第二篇—模型
模型(Models)的作用
在Django中,模型是有关数据的唯一、明确的信息来源。它包含数据的基本字段和行为。 通常,每个模型都映射到一个数据库表。 还有就是,每个模型都是一个 django.db.models.Model Python 类。
最后,模型相关知识点思维导图在下图,欢迎收藏备用。
模型的字段Fields
字段是模型中最重要的内容之一,也是唯一必须的部分。字段在Python中表现为一个类属性,体现了数据表中的一个列。请不要使用clean、save、delete等Django内置的模型API名字,防止命名冲突。
除此之外,字段名中不能有两个以上下划线在一起,及字段名不能以下划线结尾,因为两个下划线是Django的查询语法。例如:class Example(models.Model): foo__bar = models.IntegerField() 'foo__bar' 。就是个错误的示范。
正确的示例在下边:
class Person(models.Model): #约束内容长度为16,name唯一,列明自定义为'name' p_name=models.CharField(max_length=16,unique=True,db_column='name')
定义模型
使用models.py来定义我们要在应用程序中管理的数据。
下面的示例定义了一个模型类Person,它具有字段p_name、p_age和p_sex三个字段。每个字段都被指定为一个类属性,每个属性映射到一个数据库列。默认情况下,配置文件生效后,会自动创建一个first_website_app_Person(应用名_类名)名称的数据库表,但因为我们用了元信息,所以会创建一个名为hao的数据库表。
from django.db import models class Person(models.Model): #约束内容长度为16,name唯一,列明自定义为'name' p_name=models.CharField(max_length=16,unique=True,db_column='name') p_age=models.IntegerField(default=18,db_column='age') #False 代表男,默认为男 p_sex=models.BooleanField(default=False,db_column='sex') #添加元信息改变表的名称 class Meta: db_table='hao'
使用模型
1、确认已在在settings.py文件中注册应用,如没有,就添加。
INSTALLED_APPS = [ #Myapps 'first_website_app', ]
2、执行model.py文件信息收集命令。这个命令是记录我们对models.py的所有改动,并且将这个改动迁移到migrations这个文件下生成一个文件例如:0001文件,当然也可能是0002文件,但是这个命令并没有作用到数据库。如果没有指定Django应用,那么这条命令将收集所有的models.py文件修改记录。
python3 manage.py makemigrations first_website_app
3、创建数据库表。执行“python3 manage.py migrate first_website_app”,这条命令的主要作用就是把这些改动作用到数据库也就是执行migrations里面新改动的迁移文件更新数据库,比如创建数据表,或者增加字段属性。同样地,这也是一条全局执行命令。
python3 manage.py migrate first_website_app
命令执行成功后,执行下方命令,可以看到数据表已创建,只是还没有数据。在此之前,需要先执行“python manage.py shell”命令进入交互窗口模式。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论