码迷,mamicode.com
首页 > 其他好文 > 详细

Django-模型

时间:2017-11-24 22:56:50      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:this   定义   person   lin   调用   添加   告诉   字段名   排序   

模型

模型包含存储的数据行为,字段等。每个模型对应数据库中唯一一张表。

写模型类的时候需要继承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.objects

每个非抽象的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-模型

标签:this   定义   person   lin   调用   添加   告诉   字段名   排序   

原文地址:http://www.cnblogs.com/sometingintheway/p/7663342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!