Django系列教程(2)-- 模型的创建
来源:互联网 发布:江苏语音网络系统注册 编辑:程序博客网 时间:2024/06/06 07:06
定义模型
Django的模型由一个在model.py中定义的模型类来定义,每一个模型类对应于一个数据库中的表结构,而模型类的属性则对应着数据库表结构中的列
定义属性
Django模型类的属性分为属性类型和属性选项两个部分
属性1名 = 属性类型(属性选项)
属性类型
AutoField:根据Id自动增长的整数类型
BooleanField:ture/false字段,默认的表单控制是CheckboxInput
NullBooleanField:null/true/false字段
CharField(max_length=字符长度):字符串,默认的表单样式是TextInput
TextField:大文本字段
IntegerField:整数
DecimalField(max_digits=None,decimal_places=None):十进制浮点数
FloatField:float类型的浮点数
DateField(auto_now=False,auto_now_add=False):日期,使用python中的datetime.date
TimeField:时间,使用python中的datetime.time
DateTimeField:日期+时间 ,使用python中的datetime.time
FileField:一个上传文件的字段
ImageField:继承了FileField的所有属性和方法,但它会对上传对象进行校验,确保其是图片属性选项
通过属性选项,可以对属性进行限制null:对应着sql中的null类型的变量
blank:对应着表单中的空白字段
db_clolumn:字段的名称,如未指定,则使用属性的名称
db_index:若值为True,则在表中为此字段创建索引
default : 默认值
primary_key:若为True,则该字段会成为主键
unique:如果为True,这个字段在表中必须有唯一值关系
关系的类型包括:
ForeignKey:一对多,将字段定义在多的一端
ManyToManyField:多对多,将字段定义在两端中
OneToOneField:一对一,将字段定义在任意一端中
- 元选项
在模型类中定义类Meta,用于设置元信息
元信息db_table:定义表名
ordering:对象的默认排序字段 ordering=[‘字段名’],字段名前加-表示倒序,不加-表示正序
类的属性
- objects:是Manage类型默认的对象,用于和数据库交互
- 可以明确指定模型类的管理器
class BookInfo(models.Model): ... books = models.Manage() #这样的话,books就成了指定的管理其对象
当然,也可以自己定义一个管理器类
自定义管理器用于两种情况,向管理器中添加额外的方法:例如创建对象
修改管理器返回的原始查询集
class BookInfoManager(models.Manager): def get_queryset(self): return super(BookInfoManager,self).get_queryset().filter(isDelete=False)
- Django系列教程(2)-- 模型的创建
- Django系列教程(3)-- 模型的查询
- Django系列教程(4)-- 模型中的F对象和Q对象
- python django框架的模型的创建
- Django系列四:Django 模型
- 创建 Django 博客的数据库模型
- django系列5:模型(model)
- [Django数据库模型]创建一个简易的Django APP
- Python+Django+SAE系列教程10-----Django的模板
- Django系列:(1)PyCharm下创建并运行我们的第一个Django工程
- django学习教程(二)理解django框架的逻辑结构,创建第一个app
- Django系列教程(1)--入门
- Django tutorial(2)【翻译】编写第一个Django app,第二部分——创建模型和使用模型
- django系列2:安装psycopg2并且创建一个django project
- EasyAR从入门到精通开发系列教程(2)--创建模型并互动
- EasyAR从入门到精通开发系列教程(2)--创建模型并互动
- Django教程03 模型(model)
- 3.Django入门:教程-模型
- 《Apache Flume教程》第三章 Flume是如何组成的?
- okhttp的请求+上传文件
- 关于jquery中 的点击事件,每点一次执行的效果就叠加一次,click是添加点击事件的意思
- 使用mybatis分页插件PageHelper5.1.2遇到的问题
- 怎样用django创建项目和应用
- Django系列教程(2)-- 模型的创建
- IntelliJ IDEA(2017)最新版安装和破解
- 事务管理概述
- 深入浅出计算广告系统架构
- java-regex(正则)
- xtrabackup全量+增量备份手记
- lombok简介
- 学习jvm一
- SAP表格维护生成器生成数据表维护视图程序