Django models模型(1)
1)使用模型需要在INSTALLED_APPS中注册
2)模型字段(字段类型和字段选项)
1.字段类型
常用:
CharField,TextField: 对应字符串对象
DateTimeField和DateField和TimeField存储的内容分别对应着datetime(),date(),time()三个对象。
对于auto_now=False和auto_now_add=False,两者默认值都为False。
auto_now=Ture,字段保存时会自动保存当前时间,但要注意每次对其实例执行save()的时候都会将当前时间保存,也就是不能再手动给它存非当前时间的值。
auto_now_add=True,字段在实例第一次保存的时候会保存当前时间,不管你在这里是否对其赋值。但是之后的save()是可以手动赋值的。也就是新实例化一个model,想手动存其他时间,就需要对该实例save()之后赋值然后再save()。
一个模型最重要也是唯一必需的部分,是它定义的数据库字段。
字段名称限制:
1.一个字段名不能是一个Python保留字,因为那样会导致一个Python语法错误。
2.一个字段名不能包含连续的一个以上的下划线,因为那是Django查询语句的语法。
字段列表纵览表
字段名 |
参数 |
意义 |
AutoField |
一个能够根据可用ID自增的 IntegerField |
|
BooleanField |
一个真/假(true/false)字段 |
|
CharField |
(max_length) |
一个字符串字段,适用于中小长度的字符串。对于长段的文字,请使用 TextField |
CommaSeparatedIntegerField |
(max_length) |
一个用逗号分隔开的整数字段 |
DateField |
([auto_now], [auto_now_add]) |
日期字段 |
DateTimeField |
时间日期字段,接受跟 DateField 一样的额外选项 |
|
EmailField |
一个能检查值是否是有效的电子邮件地址的 CharField |
|
FileField |
(upload_to) |
一个文件上传字段 |
FilePathField |
(path,[match],[recursive]) |
一个拥有若干可选项的字段,选项被限定为文件系统中某个目录下的文件名 |
FloatField |
(max_digits,decimal_places) |
一个浮点数,对应Python中的 float 实例 |
ImageField |
(upload_to, [height_field] ,[width_field]) |
像 FileField 一样,只不过要验证上传的对象是一个有效的图片。 |
IntegerField |
一个整数。 |
|
IPAddressField |
一个IP地址,以字符串格式表示(例如: "24.124.1.30" )。 |
|
NullBooleanField |
就像一个 BooleanField ,但它支持 None /Null 。 |
|
PhoneNumberField |
它是一个 CharField ,并且会检查值是否是一个合法的美式电话格式 |
|
PositiveIntegerField |
和 IntegerField 类似,但必须是正值。 |
|
PositiveSmallIntegerField |
与 PositiveIntegerField 类似,但只允许小于一定值的值,最大值取决于数据库. |
|
SlugField |
嵌条 就是一段内容的简短标签,这段内容只能包含字母、数字、下 划线或连字符。通常用于URL中 |
|
SmallIntegerField |
和 IntegerField 类似,但是只允许在一个数据库相关的范围内的数值(通常是-32,768到 +32,767) |
|
TextField |
一个不限长度的文字字段 |
|
TimeField |
时分秒的时间显示。它接受的可指定参数与 DateField 和 DateTimeField 相同。 |
|
URLField |
用来存储URL的字段。 |
|
USStateField |
美国州名称缩写,两个字母。 |
|
XMLField |
(schema_path) |
它就是一个 TextField ,只不过要检查值是匹配指定schema的合法XML。 |
通用字段参数列表(所有的字段类型都可以使用下面的参数,所有的都是可选的。)
参数名 |
意义 |
null |
如果设置为 True 的话,Django将在数据库中存储空值为 NULL 。默认为 False 。 |
blank |
如果是 True ,该字段允许留空,默认为 False 。 |
choices |
一个包含双元素元组的可迭代的对象,用于给字段提供选项。 |
db_column |
当前字段在数据库中对应的列的名字。 |
db_index |
如果为 True ,Django会在创建表格(比如运行 manage.py syncdb )时对这一列创建数据库索引。 |
default |
字段的默认值 |
editable |
如果为 False ,这个字段在管理界面或表单里将不能编辑。默认为 True 。 |
help_text |
在管理界面表单对象里显示在字段下面的额外帮助文本。 |
primary_key |
如果为 True ,这个字段就会成为模型的主键。 |
radio_admin |
默认地,对于 ForeignKey 或者拥有 choices 设置的字段,Django管理界面会使用列表选择框(<select>)。如果 radio_admin 设置为 True 的话,Django就会使用单选按钮界面。 |
unique |
如果是 True ,这个字段的值在整个表中必须是唯一的。 |
unique_for_date |
把它的值设成一个 DataField 或者 DateTimeField 的字段的名称,可以确保字段在这个日期内不会出现重复值。 |
unique_for_month |
和 unique_for_date 类似,只是要求字段在指定字段的月份内唯一。 |
unique_for_year |
和 unique_for_date 及 unique_for_month 类似,只是时间范围变成了一年。 |
verbose_name |
除 ForeignKey 、 ManyToManyField 和 OneToOneField 之外的字段都接受一个详细名称作为第一个位置参数。 |
Django models模型(1)的更多相关文章
- Django models模型
Django models模型 一. 所谓Django models模型,是指的对数据库的抽象模型,models在英文中的意思是模型,模板的意思,在这里的意思是通过models,将数据库的借口抽象成p ...
- Django models模型ORM
一.ORM介绍 映射关系: 表名 -------------------->类名 字段-------------------->属性 表记录----------------->类实例 ...
- 转 Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- python学习-- Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- django models 类型整理 version:1.8.3
django models 类型整理 version:1.8.3 网上百度到的最上面的一篇已经是11年的了,django变化很大,现在把1.8.3版的models类型大致整理了下贴出来 普通键部分 F ...
- 64、django之模型层(model)--建表、查询、删除基础
要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带 ...
- 67、django之模型层(model)--查询补充及mookie
本篇导航: F查询与Q查询 cookie 一.F查询与Q查询 1.以Book表为例 class Book(models.Model) : title = models.CharField(max_le ...
- 初识DJango——MTV模型
一.Django—MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻 ...
- 【Django】模型层说明
[Django模型层] 之前大概介绍Django的文章居然写了两篇..这篇是重点关注了Django的模型层来进行学习. ■ 模型定义 众所周知,Django中的模型定义就是定义一个类,其基本结构是这样 ...
随机推荐
- Netty Tutorial Part 1.5: On Channel Handlers and Channel Options [z]
Intro: After some feedback on Part 1, and being prompted by some stackoverflow questions, I want to ...
- 【Spring学习笔记-3】国际化支持
[Spring]国际化支持 一.总体结构: 两个国际化资源中的内容: 二.程序 2.1 配置Spring上下文 beans.xml文件 <?xml version="1.0" ...
- bzoj3491: PA2007 Subsets
Description 有一个集合U={1,2,…,n),要从中选择k个元素作为一个子集A.若a∈A,则要有a*X不属于A,x是一个给定的数.求可选方案对M取模后的值. 1< = N< = ...
- hadoop-n.x.y.tar.gz、hadoop-n.x.y.tar.gz.asc 、hadoop-n.x.y.tar.gz.md5 、hadoop-n.x.y.tar.gz.mds分别是什么?
不多说,直接上干货! 我这里,以hadoop-2.6.0为例. hadoop-n.x.y.tar.gz.mds,此mds文件是为了检验在下载和移动文件过程中文件的完整性. 通过验证文件的md5值去检验 ...
- SSM的配置文件
Mybatis: SqlMapConfig.xml,配置了数据源,连接池,事务,加载sql映射文件(pojo),sqlsessionFactory对象,配置到spring容器中,mapeer代理对象或 ...
- Ajax的课外了解
Ajax传入的数据的话,只能是字符串或数字,字段,其他形式的传参都不可以: Ajax只是跟后台交互也有同源策略的限制: 不是当前服务器叫跨域: Ajax也有同源策略的限制想做跨域处理,只能通过scri ...
- [UE4]使用UnrealVS扩展快速编译C++代码
一.如果UE4 编辑器已经打开,则VS中的重新生成项目将不能使用,一定要关了UE4 编辑器才可以.一般不是有VS自身的编译UE4的C++代码 二.epic提供了UnrealVS扩展,可以快速编译C++ ...
- [UE4]Size To content自动适配大小
- 关于把Json数据绑定到select2中
最近做的一个项目中用到select2,想把Json的数据绑定到select2中,select2默认的能够接受的json格式的数据是以{id:"",text:''}这样的键值对来保存 ...
- 第二章:安装zabbix过程
2.2 安装zabbix过程 2.2.1 安装方式选择 编译安装 (服务较多,环境复杂) yum安装(干净环境) 使用yum 需要镜像yum源 http://www.cnblogs.com/clsn/ ...