Django-模型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django-模型相关的知识,希望对你有一定的参考价值。
模型
模型包含存储的数据行为,字段等。每个模型对应数据库中唯一一张表。
写模型类的时候需要继承models.Model。模型类中的属性是数据库的字段。
Django有一套自己的API进行对数据库的操作。建表定义字段等。
from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30)
这里的first_name和last_name是模型的两个字段。每个字段都被指定成一个类(models)属性,每个属性映射到数据库的一条数据。
person类对应的就是数据库中的一张表。 用元(meta)来对模型类做一些调整。
使用模型
模型实现之后,我们需要对setting.py进行配置,告诉Django框架,我们需要使用这些模型。
INSTALLED_APPS = ( ‘django.contrib.admin‘, ‘django.contrib.auth‘, ‘django.contrib.contenttypes‘, ‘django.contrib.sessions‘, ‘django.contrib.messages‘, ‘django.contrib.staticfiles‘, ‘booktest‘, #这是应用名 appname )
字段
字段是模型中定义数据类型,长度,等属性。模型中的字段都会被指定成一个类属性,每个属性映射到数据库的列。
写个小例子:
from django.db import models class BookInfo(models.Model): #db_column是字段名称,如果没有就使用属性名 btitle = models.CharField(max_lenght=20, db_column=‘title‘) bpub_date = models.DateField() bread = models.IntegerField (default=0) bcomment = models.IntegerFiel(default=0) isDelete = models.BooleanField(default=False)#逻辑删除
模型元选项
Meta(元)的选择:
使用内部的class Meta定义模型的元数据:
from django.db import models class Ox(models.Model): horn_length = models.IntegerField() class Meta: ordering = ["horn_length"] verbose_name_plural = "oxen"
模型元数据是“任何不是字段的数据”, 比如排序选项(ordering),数据库表名(db_table)。个人觉得元(meta)是用来修改模型类的一些特性。
属性
对象
每个非抽象的Model 类必须给自己添加一个Manager实例。Django 确保在你的模型类中至少有一个默认的Manager。
如果你没有添加自己的Manager,Django 将添加一个属性objects,它包含默认的Manager 实例。
如果你添加自己的Manager实例的属性,默认值则不会出现。
from django.db import models class Person(models.Model): # add manager with another name people = models.Manager()
为了对数据库进行查询操作,特意写个类来调用这个Manager实例属性。关于Manager()实例,可以再一个模型里面添加多个。每个实例类中都可以重写你需要的方法(在manager里的方法)。
以上是关于Django-模型的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django Summernote 中显示编程片段的代码块?
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段