一. ORM字段   (models.py文件中创建类,继承models.Model)

class Book(models.Model):  # 书籍列表

bid=models.AutoField(primary_key=True)  # 自增主键

bname=models.CharField(max_length=20)  # varchar

price = models.IntegerField()  # int类型的字段

price = models.DateTimeField( auto_now_add=True)  # 年月日时分秒

price = models.DateField(DateField=True)  # 年月日

DateTimeField和DateField都是存放时间类字段的,区别是显示的日期格式不同,

这两个字段括号内都可设置参数,参数也都一样,以下为参数及其含义:

auto_now:每次修改该对象任意内容时,都会修改为当前日期时间

auto_now_add:新建对象时自动添加当前日期时间,该日期永远不会被修改

1. 括号内指定了参数后创建对象时不用我们填写该字段,系统会自动生成时间;

> 注意:auto_now和auto_now_add和default这三个参数时互斥的,一个字段中不能同时设置.

> 补充个执行ORM操作的便捷方法,点击python页面左下角python console,该窗口会加载所有的djago环境,

我们只用在这个窗口中导入model即可使用该文件中的类,代码如下:

from app01 import models

models.Book.objects.all()就可使用.

2. 以上为常用的一些字段,更多字段如下:

> AutoField(Field)

- int自增列,必须填入参数 primary_key=True

> BigAutoField(AutoField)

- bigint自增列,必须填入参数 primary_key=True

> 当model中如果没有自增列,则自动会创建一个列名为id的列

from django.db import models

class UserInfo(models.Model):

# 自动创建一个列名为id的且为自增的整数列

username = models.CharField(max_length=32)

class Group(models.Model):

# 自定义自增列

nid = models.AutoField(primary_key=True)

name = models.CharField(max_length=32)

> SmallIntegerField(IntegerField):

- 小整数 -32768 ~ 32767

> PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)

- 正小整数 0 ~ 32767

> IntegerField(Field)

- 整数列(有符号的) -2147483648 ~ 2147483647

> PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)

- 正整数 0 ~ 2147483647

> BigIntegerField(IntegerField):

- 长整型(有符号的) -9223372036854775808 ~ 9223372036854775807

> BooleanField(Field)

- 布尔值类型

> NullBooleanField(Field):

- 可以为空的布尔值

> CharField(Field)

- 字符类型

- 必须提供max_length参数, max_length表示字符长度

> TextField(Field)

- 文本类型

> EmailField(CharField):

- 字符串类型,Django Admin以及ModelForm中提供验证机制

> IPAddressField(Field)

- 字符串类型,Django Admin以及ModelForm中提供验证 IPV4 机制

> GenericIPAddressField(Field)

- 字符串类型,Django Admin以及ModelForm中提供验证 Ipv4和Ipv6

- 参数:

protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6"

unpack_ipv4, 如果指定为True,则输入::ffff:192.0.2.1时候,可解析为192.0.2.1,

开启此功能,需要protocol="both"

> URLField(CharField)

- 字符串类型,Django Admin以及ModelForm中提供验证 URL

> SlugField(CharField)

- 字符串类型,Django Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号)

> CommaSeparatedIntegerField(CharField)

- 字符串类型,格式必须为逗号分割的数字

> UUIDField(Field)

- 字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证

> FilePathField(Field)

- 字符串,Django Admin以及ModelForm中提供读取文件夹下文件的功能

- 参数:

path,                      文件夹路径

match=None,                正则匹配

recursive=False,           递归下面的文件夹

allow_files=True,          允许文件

allow_folders=False,       允许文件夹

> FileField(Field)

- 字符串,路径保存在数据库,文件上传到指定目录

- 参数:

upload_to = ""      上传文件的保存路径

storage = None      存储组件,默认django.core.files.storage.FileSystemStorage

> ImageField(FileField)

- 字符串,路径保存在数据库,文件上传到指定目录

- 参数:

upload_to = ""      上传文件的保存路径

storage = None      存储组件,默认django.core.files.storage.FileSystemStorage

width_field=None,   上传图片的高度保存的数据库字段名(字符串)

height_field=None   上传图片的宽度保存的数据库字段名(字符串)

> DateTimeField(DateField)

- 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]

> DateField(DateTimeCheckMixin, Field)

- 日期格式      YYYY-MM-DD

> TimeField(DateTimeCheckMixin, Field)

- 时间格式      HH:MM[:ss[.uuuuuu]]

> DurationField(Field)

- 长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型

> FloatField(Field)

- 浮点型

> DecimalField(Field)

- 10进制小数

- 参数:

max_digits,小数总长度

decimal_places,小数位长度

> BinaryField(Field)

- 二进制类型

二. 字段参数

字段括号内参数都有哪些呢?参考如下内容:

注意: price = models.IntegerField( null=True, blank=True)

注意null和blank的区别: null=True表示在数据库层面可为空,而blank=True则是在django层面限制可

   为空,使用时两者是连用的,否则数据库可空但django不能为空,还是会报错的,反之亦然

参数如下:67

null                数据库中字段是否可以为空

db_column           数据库中字段的列名

default             数据库中字段的默认值

primary_key         数据库中字段是否为主键

db_index            数据库中字段是否可以建立索引

unique              数据库中字段是否可以建立唯一索引

unique_for_date     数据库中字段【日期】部分是否可以建立唯一索引

unique_for_month    数据库中字段【月】部分是否可以建立唯一索引

unique_for_year     数据库中字段【年】部分是否可以建立唯一索引

verbose_name        Admin中显示的字段名称

blank               Admin中是否允许用户输入为空

editable            Admin中是否可以编辑

help_text           Admin中该字段的提示信息

choices             Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作

ORM属性/字段的更多相关文章

  1. ORM常用字段介绍

    Django中的ORM Django项目使用MySQL数据库 1. 在Django项目的settings.py文件中,配置数据库连接信息: DATABASES = { "default&qu ...

  2. Django(ORM常用字段)

    day68 参考:http://www.cnblogs.com/liwenzhou/p/8688919.html 1. Django ORM常用字段:             1. AutoField ...

  3. Django框架 之 ORM 常用字段和参数

    Django框架 之 ORM 常用字段和参数 浏览目录 常用字段 字段合集 自定义字段 字段参数 DateField和DateTimeField 关系字段 ForeignKey OneToOneFie ...

  4. python 之 Django框架(ORM常用字段和字段参数、关系字段和和字段参数)

    12.324 Django ORM常用字段 .id = models.AutoField(primary_key=True):int自增列,必须填入参数 primary_key=True.当model ...

  5. Django中ORM常用字段及字段参数

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  6. Django orm常用字段和字段参数

    1.Object Relational Mapping(ORM) 1.1ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象 ...

  7. 06 ORM常用字段 关系字段 数据库优化查询

    一.Django ORM 常用字段和参数 1.常用字段 models中所有的字段类型其实本质就那几种,整形varchar什么的,都没有实际的约束作用,虽然在models中没有任何限制作用,但是还是要分 ...

  8. Django之ORM属性类型和约束条件

              ORM属性类型: 1. CharField 字符串字段, 用于较短的字符串. CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该 ...

  9. [源码]Literacy 快速反射读写对象属性,字段

    Literacy 说明 Literacy使用IL指令生成方法委托,性能方面,在调用次数达到一定量的时候比反射高很多 当然,用IL指令生成一个方法也是有时间消耗的,所以在只使用一次或少数几次的情况,不但 ...

随机推荐

  1. 在onclick事件中传递对象参数

    1.传json对象 var obj = {id: 1, name: 'jimc', age: 20}; var jsonObj = '<a onclick="show(' + JSON ...

  2. mysql truncate 引起的 system lock,导致其他进程等待

    1.现状:上线新项目,导致api服务延迟,cpu正常,内存正常,连接数正常,sql性能正常,sql进程正常(初步分析) 最后再次分析sql进程才发现 由于该 truncate table name ; ...

  3. fiverr无法注册的解决办法,fiverr注册教程

    转载 https://www.wok99.com/450.html

  4. 1小时搞定vuepress快速制作vue文档/博客+免费部署预览

    先来一下演示效果.和vue的官方文档几乎是一致的,页面内容都可自定义. 此教程部署后的效果预览. 在你跟着教程搭建好项目之后,你会收获: 快速搭建一个文档/博客,后期只需要修改markdown内容和导 ...

  5. vue中操作localstorage

    首先在子组件将localstorage方法进行封装 在父组件中对其进行引用 将输入的值存入到定义的searchHistory数组中,存储localstorage需要传两个参数,变量名为searchHi ...

  6. 使用Alipay代码源,构建自己的Docker镜像

    1. alipay 镜像仓库 地址 (自行换成自己的阿里镜像云DockerHub地址) https://cr.console.aliyun.com/repository/ 2.alipay 代码云 地 ...

  7. Windows Server - 用tomcat部署finereport

    原博地址:https://blog.csdn.net/qq_39019865/article/details/80969728

  8. DP之背包

    一.01背包: (以下均可用一维来写 即只能选择一次的物品装在一定容积的背包中.f[i][j]表示前i件物品在容积为j时的最大价值. for(int i = 1; i <= n ;  i++){ ...

  9. Linux关机重启注销(3)

    1.关机重启 shutdown shutdown -h now :立即关机 shutdown -h 1 now :一分钟后关机 shutdown -r now :立即重启 halt:关机 reboot ...

  10. BUAA-OO-2019 第四单元总结

    UML作业架构设计 这一单元的作业本质上是对数据之间的联系进行解析,并重新建立数据结构以方便查询的工作,这就要求我们了解各种UmlElement的结构以及他们之间的关系是如何组织的. 第十三次作业 在 ...