首页 Python正文

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

sanrenxing Python 2022-02-21 771 0 | 文章出自:https://mp.weixin.qq.com/s?__biz=MzI5OTAwNjMzMg==&mid=2694958663&idx=1&sn=db950e946dcd49a4d381e81389ad27f5&chksm=c9c84e54febfc742096aa8ebb1f363bf3906de54502b5873e3fbe464ea3828ad123eb8b78b3c&token=2000901610&lang=zh_CN#rd Python web框架django模型创建和管理模型

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”命令进入交互窗口模式。


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论