Dango自学习6
来源:互联网 发布:html5影视cms系统 编辑:程序博客网 时间:2024/05/29 16:38
模型层
模型是你的数据的唯一,每个模型对应数据库中的唯一一个表.
1,每个模型都是django.db.models.Model的一个python子类
2,模型的每个属性都表示数据库中的一个字段
3,Django提供一套自动生成的用于数据库的访问的API
新建bob项目 myapp应用在myapp/models.py:
若多次改变其中一个类中的属性,在更新数据库操作中会出现错误:
选择1),然后输入timezone.now():
在shell进行数据库操作:
对于类中的主键一般是由Django自动建立的,也可以通过设置primary_key=True把当前属性作为主键.
例如:
自增属性字段为:
id=models.AutoField(primary_key=True)
字段的自述名:
一般情况下在没有指定自述名时---将属性的名称的下划线换位空格即为自述名
指定例子:
first_name=models.CharField("person's first name",max_length=30)
自述名即为person's first name
ForeignKey ManyToManyField 和OneToOneField都要求第一个参数是模型类,因此使用verbose_name关键字参数才能指定自述名
例如:
polls=models.ForeignKey(Poll,verbose_name="ok")
sites=models.ManyToManyField(Site,verbose_name='fine')
place=models.OneToOneField(Place,verbose_name="yes")
关系:
Django提供了三种关系:多对一关系 多对多关系 一对一关系
多对一关系:
Django使用django.db.models.ForignKey定义多对一关系例如:
当然可以创建递归的关联关系和尚未定义的模型关联关系
多对多关系:
ManyToManyField用来定义多对多关系,用法和其他Field字段类型一样:在模型类中作为一个属性包含进来
需要一个位置参数:和该模型关联的类
其和ForignKey的用法是一样的,多对多关系的其他字段:
例如:有这样的一个应用:它记录着音乐家所属的音乐小组.我们可以用一个ManyToManyField表示小组和成员之间的多对多关系,但是你想知道更多成员关系的细节,比如成员是何时加入小组的:
from django.db import models
class Person(models.Model):
name=models.CharField(max_length=128)
def __str__(self):
return self.name
class Group(models.Model):
name=models.CharField(max_length=128)
members=models.ManyToManyField(Person,through="Membership")
def __str__(self):
return self.name
class Membership(models.Model):
person=models.ForeignKey(Person)
group=models.ForeignKey(Group)
date_joined=models.DateField()
invite_reason=models.CharField(max_length=64)
ManyToManyField字段将使用through参数指向中介模型(在这个例子中就是membership).在设置中介模型时,要显示的指定外键病关联到多对多关系涉及的模型.
接下来创建多对多关系,要做的就是创建中介模型实例:
- Dango自学习6
- 自学习算法(JAVA)
- mybatis自学习(一)
- Django自学习4
- Django自学习5
- Django自学习8
- python自学习笔记
- NSDate--自学习笔记
- 图像特征自学习
- mybatis自学习(一)
- ios 上传图片 到Dango 1.5 服务器
- Dango笔记---manage.py 脚本的使用
- Dango Web 开发指南 学习笔记 1
- Dango Web 开发指南 学习笔记 2
- Dango Web 开发指南 学习笔记 3
- pypy+uwsgi+dango+nginx 简单部署
- Dango笔记---manage.py 脚本的使用
- 自学习智能搜索引擎算法概述
- linux查看文件类型
- css3-盒子模型之外边距
- 常见maven引用
- 三目运算
- 心中的清泉
- Dango自学习6
- linux 常用基本命令之四 rm
- 导航栏显示和隐藏
- 软件测试分类
- Android开发之Eclipse中搭建PhoneGap运行环境
- android4.4+me909+电信4g卡
- 企业信息化中的“管理设计”
- Linux下的LED子系统驱动
- 二值化