当前位置:   article > 正文

Django模型_阐述django模型作用是什么?有哪些重点

阐述django模型作用是什么?有哪些重点

        Django模型的应用是Django中很重要的一部分,在这里分享自己学习的一些成果。

        1. ORM

        我们知道Django框架属于MVT框架的一种,而MVT框架中包括了一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,只需通过简单的配置就可以轻松更换数据库。

        ORM是“对象-关系-映射”的简称,主要任务是:

        (1)根据对象的类型生成数据表结构,将对象、列表的操作,转换为SQL语句,将SQL查询到的结果转换为对象、列表;

        (2)这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动;        

        (3)Django中的模型包含存储数据的字段和约束,对应着数据库中唯一的表。        

         2. 定义与创建模型

        在了解ORM之后,接下来,我们创建定义和创建模型。当我们使用命令:

python manage.py startapp 应用名称

        创建一个应用的时候,在项目目录下会出现一个与应用名称一样的文件夹:

        注意: 生成的应用要添加到主目录settings.py的INSTALLED_APPS中

        2.1 设计数据表

        在应用目录下的models.py写入代码:

  1. # 图书类
  2. class BookInfo(models.Model):
  3. #图书名
  4. bname=models.CharField(max_length=20)
  5. #发布日期
  6. bpub_date=models.DateField()
  7. #页面数
  8. bpage=models.IntegerField(default=0)
  9. #软删除标记
  10. is_delete=models.BooleanField(default=False)
  11. # 作者类
  12. class AuthorInfo(models.Model):
  13. #作者名
  14. aname=models.CharField(max_length=20)
  15. #性别
  16. agender=models.BooleanField(default=True)
  17. #简介
  18. acontent=models.CharField(max_length=100)
  19. #软删除标记
  20. is_delete=models.BooleanField(default=False)
  21. #外键名
  22. abook=models.ForeignKey("BookInfo")

         里面的两个类将会在数据库中生成两张表,里面的属性则会生成相对应的字段。这里我使用的是mysql数据库,所以,还需要配置数据库。

        配置数据库的方法:

        1. 修改setting.py文件中DATABASES的信息

         2. 安装pymysql模块后,打开主目录下的__init__.py文件写上以下代码:

  1. import pymysql
  2. pymysql.install_as_MySQLdb()

        完成以上两个步骤之后,才可以在Django中使用操作mysql数据库。

        2.2 生成数据表

        在设计完数据表之后,就要生成这些数据表了哦。要生成数据表需要两个步骤:

        1、需要先执行如下命令用于生成迁移文件:

         2、 执行如下迁移命令用于执行SQL语句生成数据表:

         执行以上命令后,数据库就会生成数据表

         3. 内置类--Meta类

        在这里扩展一下Meta类的一些相关内容。

        3.1 db_table选项

        在模型类中定义类Meta,可用于设置元信息,如使用db_table自定义表的名字。我们都知道,在Django中,数据表的默认名称为:<app_name>_<model_name>

  1. class BookInfo(models.Model):
  2. ...
  3. #定义元选项
  4. class Meta:
  5. db_table='bookinfo' #指定BookInfo生成的数据表名为bookinfo

        3.2 verbose_name选项与verbose_name_plural选项

        这两个选项都可以用来设置数据表在后台显示的内容。

  1. class BookInfo(models.Model):
  2. ...
  3. #定义元选项
  4. class Meta:
  5. db_table='bookinfo' #指定BookInfo生成的数据表名为bookinfo
  6. # 该选项在后台显示时,会在设置的名称后加多一个's'
  7. # verbose_name = '图书'
  8. # 该选项在后台显示时,不会在设置的名称后加多一个's'
  9. verbose_name_plural = '图书'

        3.3 abstract选项

        Model中可以使用meta将某一个类设置成抽象类,抽象类不会在数据库中创建表,可以将表中重复的字段放入到抽象类中,让每一个应用继承这个抽象类.

        在Meta选项中还有很多选项可以选择,可以到Django文档中学习更多的选项

Django 文档 | Django 文档 | Djangohttps://docs.djangoproject.com/zh-hans/2.0/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/56529
推荐阅读
相关标签
  

闽ICP备14008679号