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)的更多相关文章

  1. Django models模型

    Django models模型 一. 所谓Django models模型,是指的对数据库的抽象模型,models在英文中的意思是模型,模板的意思,在这里的意思是通过models,将数据库的借口抽象成p ...

  2. Django models模型ORM

    一.ORM介绍 映射关系: 表名 -------------------->类名 字段-------------------->属性 表记录----------------->类实例 ...

  3. 转 Django根据现有数据库,自动生成models模型文件

    Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...

  4. python学习-- Django根据现有数据库,自动生成models模型文件

    Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...

  5. django models 类型整理 version:1.8.3

    django models 类型整理 version:1.8.3 网上百度到的最上面的一篇已经是11年的了,django变化很大,现在把1.8.3版的models类型大致整理了下贴出来 普通键部分 F ...

  6. 64、django之模型层(model)--建表、查询、删除基础

    要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带 ...

  7. 67、django之模型层(model)--查询补充及mookie

    本篇导航: F查询与Q查询 cookie 一.F查询与Q查询 1.以Book表为例 class Book(models.Model) : title = models.CharField(max_le ...

  8. 初识DJango——MTV模型

    一.Django—MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻 ...

  9. 【Django】模型层说明

    [Django模型层] 之前大概介绍Django的文章居然写了两篇..这篇是重点关注了Django的模型层来进行学习. ■ 模型定义 众所周知,Django中的模型定义就是定义一个类,其基本结构是这样 ...

随机推荐

  1. PAT 乙级 1020 月饼 (25) C++版

    1020. 月饼 (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 月饼是中国人在中秋佳节时吃的一种传统食 ...

  2. Python——函数,模块,简单文件读写(python programming)

    函数(function)定义原则: 最大化代码重用,最小化代码冗余,流程符合思维逻辑,少用递归; 函数的定义方法: def function_name(param_1, param_2): ..... ...

  3. android 根据滑动隐藏或显示导航 类似手机QQ好友个人信息

    //重写ScrollView public class NotifyingScrollView extends ScrollView { /** * @author Cyril Mottier */ ...

  4. ORA-22922: 不存在的 LOB 值 可以使用外层嵌套wm_concat()解决

    select kw0408id, sjbh, ksrs, kch, to_char(wm_concat(kcmc)) as kcmc, ksxs, kssc, ksfs, kcxz, xsyx, nj ...

  5. Junit4简单使用

    一.Junit4是JAVA语言的单元测试框架,用于编写和运行可重复的测试,可以大大提高效率 1.使用Junit4必须在项目中导入Junit4.har文件 2.新建Junit Test case 勾选s ...

  6. 第9章 应用层(3)_telnet协议和远程桌面协议RDP

    3.1 telnet简介 (1)telnet是一个简单的远程终端协议,也是因特网的正式标准.用户使用telnet连接到远程运行telnet服务的设备(可以是网络设备.比如路由器.交换机,也可以是操作系 ...

  7. PHP微信公众号开发之基本配置

    (提示:需要有服务器或云虚拟机) 一开始不明白公众号不是可以这样管理吗?                那么为什么用开发平台进行公众号开发,官方文档是这样说的 为了识别用户,每个用户针对每个公众号会产 ...

  8. 数据库类型总结对比(Java,Hibernate,SQLServer,MySQL,Oracle)

  9. 通过mapreduce把mysql的数据读取到hdfs

    前面讲过了怎么通过mapreduce把mysql的一张表的数据放到另外一张表中,这次讲的是把mysql的数据读取到hdfs里面去 具体怎么搭建环境我这里就不多说了.参考 通过mapreduce把mys ...

  10. 学习Python 新去处:Python 官方中文文档

    Python 作为世界上最好用的语言,官方支持的文档一直没有中文.小伙伴们已经习惯了原汁原味的英文文档,但如果有官方中文文档,那么查阅或理解速度都会大大提升.本文将介绍隐藏在 Python 官网的中文 ...