Django model字段类型解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:   Model字段认识  V=models.CharField(max_length=None<, **options>)    #varchar  V=models.EmailField()    #varchar  V=models.URLField()    #varchar  V=models.FileField(upload_to=None<, max_length=100, **options>)    #varchar #upload_to指定保存目录可带格式,  V=models.ImageField(upload_to=None<, height_fie

  Model字段认识

  V=models.CharField(max_length=None<, **options>)    #varchar

  V=models.EmailField()    #varchar

  V=models.URLField()    #varchar

  V=models.FileField(upload_to=None<, max_length=100, **options>)    #varchar #upload_to指定保存目录可带格式,

  V=models.ImageField(upload_to=None<, height_field=None, width_field=None, max_length=100, **options>)

  V=models.IPAddressField(<**options>)    #varchar

  V=models.FilePathField(path=None<, match=None, recursive=False, max_length=100, **options>) #varchar

  V=models.SlugField()    #varchar,标签,内含索引

  V=

  models.CommaSeparatedIntegerField(max_length=None<, **options>)    #varchar

  V=models.IntegerField(<**options>)    #int

  V=

  models.PositiveIntegerField(<**options>)    #int 正整数

  V=models.SmallIntegerField(<**options>)    #smallint

  V=

  models.PositiveSmallIntegerField(<**options>)    #smallint 正整数

  V=models.AutoField(**options)    #int;在Django代码内是自增

  V=models.DecimalField(max_digits=None, decimal_places=None<, **options>)    #decimal

  V=models.FloatField(<options>)    #real V=models.BooleanField(options)    #boolean或bit

  V=models.NullBooleanField(<**options>)    #bit字段上可以设置上null值

  V=models.DateField()  #date #auto_now最后修改记录的日期;auto_now_add添加记录的日期

  V=models.DateTimeField()    #datetime

  V=models.TimeField()    #time

  V=models.TextField(<**options>)    #text

  V=models.XMLField(schema_path=None<, **options>)    #text ——————————————————————————–

  V=models.ForeignKey(othermodel<, **options>)    #外键,关联其它模型,创建关联索引

  V=models.ManyToManyField(othermodel<, **options>)    #多对多,关联其它模型,创建关联表

  V=models.OneToOneField(othermodel<, parent_link=False, **options>)    #一对一,字段关联表属性

  django 中model 作为数据资源指定了字段以及一些处理该相应的功能。通常情况下,每个model对应数据库中的一张表 每个model都是从django.core.meta.Model中派生出来的model中每个属性(class attribute)对应着数据库表中的一个字段非字段信息(Modelmetadata)在类中被称作METAField Objects每个class attributes对应着数据库中的一个字段,其应该是由meta.Filed的派生的。

  from django.core import metaclass Person(meta.Model): first_name=meta.CharField(maxlength=30) last_name=meta.CharFiled("lastname",maxlength=30) 除了 ForeignKey, ManytoManyFiled OneToOneField 使用verbose_name关键字以外,第一个可选参数是用来为字段命名的,如果不设置,系统会自动为起起名。sites=meta.ManyToManyField(site,verbose_name="list of sites")

  Field 选项

  null null 缺省设置为false.通常不将其用于字符型字段上,比如CharField,TextField上.字符型字段如果没有值会返回空字符串。

  blank 该字段是否可以为空。如果为假,则必须有值

  choices 一个用来选择值的2维元组。第一个值是实际存储的值,第二个用来方便进行选择。 SEX_CHOICES=(('F','Female'),('M','Male'),) coredb_columndb_index 如果为真将为此字段创建索引

  default 缺省值

  editable 如果为假,admin模式下将不能改写。缺省为真

  help_text admin模式下帮助文档

  primary_key 设置主键。如果没有设置django创建表时会自动加上 id=meta.AutoField('ID', primary_key=True) primary_key=True implies blank=False, null=False and unique=True. Only one primary key is allowed on an object. radio_admin 用于admin模式下将select转换为radio显示。只用于ForeignKey或者设置了choices

  unique 数据唯一

  unique_for_date title=meta.CharField(maxlength=30,unique_for_date='pub_date') 系统将不允许title和pub_date两个都相同的数据重复出现 unique_for_month / unique_for_year

  validator_list 有效性检查。非有效产生

  django.core.validators.ValidationError 错误

  Field Types

  AutoField 自动增长的整型字段。通常无需自己添加

  BooleanFieldCharField 对于大量文字应该使用TextField。参数: maxlength

  DateField 参数:

  auto_now 自动设置为对象保存时刻的时间。对于类似最后改动之类的应用很有效

  auto_now_add 从最初保存对象至今的增量时间

  DateTimeField 同上EmailField 检查是否为email的CharField字段

  FileField 保存文件的相对路径名称 绝对路径需要在setting中设置 MEDIA_ROOT。对于ImageField设置 MEDIA_URL。 参数upload_to.相对于MEDIA_ROOT目录的子目录 通过get__url获取绝对路径

  FilePathField 通过给定参数获取文件列表(个人感觉) path 必须要有。 文件系统的绝对路径 match 可选。一个正则表达式。用来做文件筛选过滤 recursive 可选。True 包含子目录查找 FilePathField(path="/home/images", match="foo.*" , recursive=True)

  FloatField 浮点数字段。两个必须选项 max_digits 数字最多位数 decimal_places 小数点位置 meta.FloatField(...,max_digits=5,decimal_places=2) /////100.00 ImageField

  基本上同FileField.会进行文件格式检查。两个额外选项 height_field, width_field 如果设置这两项,会自动对图片进行缩放后再保存

  需要 python Imaging library

  IntegerFieldIPAddressField

  "10.1.1.3" NullBooleanField

  比BooleanField多了一个NULL状态 PhoneNumberField

  美国格式电话号码 xxx-xxx-xxxx. CharField PositiveIntegerField

  正整数 PositiveSmallIntegerField 一个小的正整数。根据数据库的设置 SlugField 小片断。

  什么都可以。通常用来存url SlugField 被暗指 maxlength=50 db_index=True

  选项: prepopulate_from 一个用来自动生成slug的字段列表

  SmallIntegerFieldTextField TimeField

  选项: auto-population(可能不对) from DateField and DateTimeField URLField

  选项: verify_exists 如果为True ,系统自动检查该url是否存在不为404 USStateField

  两字符美国州简写 XMLField 保存xml数据。

  选项:schema_path .指定relaxNG格式schema用来检验xml合法性

  字段列表纵览表

  字段名

  参数

  意义

  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管理界面会使用列表选择框(

目录
相关文章
|
3月前
|
存储 缓存 前端开发
Django 后端架构开发:存储层调优策略解析
Django 后端架构开发:存储层调优策略解析
50 2
|
1天前
|
存储 关系型数据库 MySQL
MySQL 字段类型深度解析:VARCHAR(50) 与 VARCHAR(500) 的差异
在MySQL数据库中,`VARCHAR`类型是一种非常灵活的字符串存储类型,它允许存储可变长度的字符串。然而,`VARCHAR(50)`和`VARCHAR(500)`之间的差异不仅仅是长度的不同,它们在存储效率、性能和使用场景上也有所不同。本文将深入探讨这两种字段类型的区别及其对数据库设计的影响。
9 2
|
27天前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
59 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
27天前
|
存储 开发框架 JSON
【查漏补缺】Django模型字段类型及其应用
【查漏补缺】Django模型字段类型及其应用
15 0
|
3月前
|
机器学习/深度学习 测试技术 API
【Python-Keras】Keras搭建神经网络模型的Model解析与使用
这篇文章详细介绍了Keras中搭建神经网络模型的`Model`类及其API方法,包括模型配置、训练、评估、预测等,并展示了如何使用Sequential模型和函数式模型来构建和训练神经网络。
44 1
|
3月前
|
存储 API 数据库
Django后端架构开发:构建在线云媒资系统思路解析
Django后端架构开发:构建在线云媒资系统思路解析
45 0
|
5月前
|
前端开发 数据库 开发者
构建高效后端:Django框架在Web开发中的深度解析
**Django框架深度解析摘要** Django,Python的高级Web框架,以其快速开发和简洁设计备受青睐。核心特性包括Model-Template-View架构、ORM、模板引擎和URL路由。通过创建博客应用示例,展示从初始化项目、定义模型、创建视图和URL配置到使用模板的流程,体现Django如何简化开发,提高效率。其强大功能如用户认证、表单处理等,使Django成为复杂Web应用开发的首选。学习Django,提升Web开发效率。【6月更文挑战第24天】
99 1
|
5月前
|
前端开发 JavaScript 安全
跨域问题与Django解决方案:深入解析跨域原理、请求处理与CSRF防护
跨域问题与Django解决方案:深入解析跨域原理、请求处理与CSRF防护
|
6月前
|
SQL API 数据库
python的Django ORM框架深度解析
【4月更文挑战第14天】在Python的Web开发领域,Django无疑是一个备受推崇的框架。它提供了许多强大的工具和功能,使得开发者能够高效、快速地构建出高质量的Web应用。而在Django的众多特性中,ORM(对象关系映射)框架更是其不可或缺的一部分。本文将详细解析Django ORM框架,帮助读者更好地理解和使用它。
|
6月前
|
JSON 前端开发 数据格式
如何在Django中正确解析POST请求参数
如何在Django中正确解析POST请求参数
132 1

推荐镜像

更多
下一篇
无影云桌面