Django的Mov逻辑的管理特色
Django的MOV逻辑的管理特色
首先我们谈论到一个逻辑上的概念都从它的起点说起,在我看来mov的起点肯定就是Model了,那么Model有什莫特色呢
如果一个项目定义的Django那么Django就会帮我们Model对应到数据库的表上,还有其对应的字段类型也是一大特色:
其字段类型包含了 这几类:
数值型,字符型,日期型,关系型。
其中关系型是最重要也是最抽象的,下面是下面是常用的字段类型的介绍:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
取自:
作者:JamesPaul32
原文:https://blog.csdn.net/JamesPaul32/article/details/80775211
1、AutoField()
自增的IntegerField,通常不用自己设置,若没有设置主键,Django会自动添加它为主键字段,Django会自动给每张表添加一个自增的primary key。
2、BigIntegerField
64位整数, -9223372036854775808 到 9223372036854775807。默认的显示widget 是 TextInput.
3、BinaryField ( Django 1.6 版本新增 )
存储二进制数据。不能使用 filter 函数获得 QuerySet
4、BooleanField()
True/False,默认的widget 是 CheckboxInput。
如果需要置空,则必须用 NullBooleanField 代替。
Django 1.6 修改:BooleanField 的默认值 由 False 改为 None,在 default 属性未设置的情况下。
5、CharField(max_length=none[, **options])
储存字符串。必须有 max_length 参数指定长度。作用于数据层级和django数据验证层级。默认的form widget 是 TextInput如果字符串巨长,推荐使用 TextField。
6、CommaSeparatedIntegerField(max_length=none[, **options])
存放由逗号间隔的整数序列。必须有 max_length 参数。
7、DateField
日期,与python里的datetime.date 实例同。有以下几个可选的选项,均为bool类型:
DateField.auto_now: 每次执行 save 操作的时候自动记录当前时间,常作为最近一次修改的时间 使用。注意:总是在执行save 操作的时候执行,无法覆盖。
DateField.auto_now_add: 第一次创建的时候添加当前时间。常作为 创建时间 使用。注意:每次create 都会调用。
默认的form widget 是 TextInput。
注意:设置auto_now 或者 auto_now_add 为 True 会导致当前自动拥有 editable=False 和 blank = True 设置。
8、DateTimeField([auto_now=False, auto_now_add=False, **options])
日期+时间。与python里的 datetime.datetime 实例同。常用附加选项和DateField一样。
默认 form widget 是一个 TextInput
9、DecimalField(max_digits=None,decimal_places=None[, **options])
用decimal实例表示固定精度的十进制数的字段,有两个必须参数,max_digits数字允许的最大位数,decimal_places小数的最大位数。django后台用表示该字段, 通常用来表示金额
10、EmailField([maxlength=75, **options])
在 CharField 基础上附加了 邮件地址合法性验证。不需要强制设定 max_length
注意:当前默认设置 max_length 是 75,虽然已经不符合标准,但未了向前兼容,未修改。
11、FileField(upload_to=None[, max_length=100, **options])
文件上传字段。不支持 primary_key 和 unique 选项。否则会报 TypeError 异常。
必须设置 FileField.upload_to 选项,这个是 本地文件系统路径,附加在 MEDIA_ROOT 设置的后边,也就是 MEDIA_ROOT 下的子目录相对路径。默认的form widget 是 FileInput。
12、FloatField
与 python 里的 float 实例相同,默认的 form widget 是 TextInput。
虽然 FloatField 与 DecimalField 都是表示实数,但却是不同的表现形式,FloatField 用的是 python d float 类型,但是 DecimalField 用的却是 Decimal 类型。区别可见:http://docs.python.org/2.7/library/decimal.html#decimal
13、ImageField([upload_to=None, height_field=None, width_field=None, max_length=100, **options])
在 FileField 基础上加上是否是合法图片验证功能的一个类型。
除了 FileField 有的属性外,ImageField 另有 height 和 width 属性。
注意:需要安装 PIL 或者 Pillow 模块。在数据库中同样表现为 varchar(100),可通过 max_length 改大小。
14、IntegerField
整数,默认的form widget 是 TextInput。
15、IPAddressField
IP地址,字符串类型,如 127.0.0.1。默认 form widget 是 TextInput。
16、GenericIPAddressField
ip v4和ip v6地址表示,ipv6遵循RFC 4291section 2.2,
17、NullBooleanField
可以包含空值的布尔类型,相当于设置了null=True的BooleanField。
18、PositiveSmallIntegerField
正短整数或0类型,类似于PositiveIntegerField,取值范围依赖于数据库特性,[0 ,32767]的取值范围对Django所支持的数据库都是安全的。
19、PositiveIntegerField
正整数或0类型,取值范围为[0 ,2147483647]
20、SlugField
只能包含字母,数字,下划线和连字符的字符串,通常被用于URLs表示。可选参数max_length=50,prepopulate_from用于指示在admin表单中的可选值。db_index,默认为True。
21.SmallIntegerField
小整数字段,类似于IntegerField,取值范围依赖于数据库特性,[-32768 ,32767]的取值范围对Django所支持的数据库都是安全的。
22、TextField
大文本,巨长的文本。默认的 form widget 是 Textarea。
23、TimeField
时间,对应Python的datetime.time
24、URLField
加了 URL 合法性验证的 CharField。
默认的 form widget 是 TextInput。
默认max_length=200,可修改。
25、FilePathField(path=None[, match=None, recursive=False, max_length=100, options])
他是一个CharField,用来选择文件系统下某个目录里面的某些文件,它有三个专有参数,只有path是必须的。path是一个目录的绝对路径,match是一个正则表达式字符串,用来过滤文件名称;recursive为bool,指定是否包含path下的子目录。
注意,如果使用 MySQLdb 1.2.1p2 和 utf-8_bin 编码,会有一些问题https://docs.djangoproject.com/en/dev/ref/databases/#mysql-collation。具体问题未分析,可自行避开。
Field 选项
null
boolean 值,缺省设置为false。通常不将其用于字符型字段上,比如CharField,TextField上。字符型字段如果没有值会返回空字符串。
blank
boolean 值,该字段是否可以为空。如果为假,则必须有值。
choices
元组值,一个用来选择值的2维元组。第一个值是实际存储的值,第二个用来方便进行选择。如SEX_CHOICES=((‘F’,’Female’),(‘M’,’Male’),)
db_column
string 值,指定当前列在数据库中的名字,不设置,将自动采用model字段名;
db_index
boolean 值,如果为True将为此字段创建索引;
default
给当前字段设定的缺省值,可以是一个具体值,也可以是一个可调用的对象,如果是可调用的对象将每次产生一个新的对象;
editable
boolean 值,如果为假,admin模式下将不能改写。缺省为真;
error_messages
字典,设置默认的出错信息,可覆盖的key 有 null, blank, invalid, invalid_choice, 和 unique。
help_text
admin模式下帮助文档
form widget 内显示帮助文本。
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
boolean值,数据是否进行唯一性验证;
unique_for_date
字符串类型,值指向一个DateTimeField 或者 一个 DateField的列名称。日期唯一,如下例中系统将不允许title和pub_date两个都相同的数据重复出现
title = meta.CharField( maxlength=30, unique_for_date=’pub_date’ )
unique_for_month / unique_for_year
用法同上
verbose_name
string类型。更人性化的列名。
validators
有效性检查。无效则抛出 django.core.validators.ValidationError 异常。
-----------------------------------------------------------------------------------------------------------------------------------------------
未完待续。。。。。。
Django的Mov逻辑的管理特色的更多相关文章
- CentOS 6.3下配置LVM(逻辑卷管理)
一.简介 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵 ...
- 学习OpenStack之 (4): Linux 磁盘、分区、挂载、逻辑卷管理 (Logical Volume Manager)
0. 背景: inux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间.普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻 ...
- LVM逻辑卷管理
一.LVM简介 LVM(Logic Volume Manager)逻辑卷管理,简单理解就是将一块或多块硬盘的分区在逻辑上集合,当一块大硬盘来使用. 其特点是: 1.可以实现在线动态扩展,也可以缩减 2 ...
- 逻辑卷管理LVM (Logical Volume Manager)
什么是LVM? LVM(Logical Volume Manager)逻辑卷管理,是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的 ...
- Linux逻辑卷管理器(LVM)
LVM基础 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM),用户可以在系统运行时动态调整文件系统的大小,把数据从一块硬盘重定位到另一块硬盘,也可以提高I/O ...
- linux逻辑卷管理
近期在进行linux充电,依据网络资料自己整理的资料,分享一下 ---------------------------------------------------------- Linux逻辑卷管 ...
- 逻辑卷管理lvm
逻辑卷管理LVM 一 创建逻辑卷 1准备分区或硬盘 这里使用/dev/sdb./dev/sdc两块硬盘和/dev/sda9./dev/sda10两个分区,大小都为1G,磁盘有限,我也不想这么抠的. 添 ...
- Linux逻辑卷管理器concept
Linux逻辑卷管理concept-------------------------转载2013/10/09 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM) ...
- Python(Django)项目与Apache的管理
(开开心心每一天~ ---虫瘾师) Python(Django)项目交给Apache的管理(一) 准备:Django的环境(Python).Apache.Wsgi(必须文件) 首先需要电脑有Pytho ...
随机推荐
- mongodb aggregate
$project:修改输入文档的结构.可以用来重命名.增加或删除域,也可以用于创建计算结果以及嵌套文档. $match:用于过滤数据,只输出符合条件的文档.$match使用MongoDB的标准查询操作 ...
- 如何配置IIS使其支持APK/WGT文件的下载
1.打开Internet 信息服务(IIS)管理器: 2.选择需要配置的网站: 3.右侧功能界面双击进入“MIME类型”: 4.点击右侧“添加”按钮,在弹出窗口里文件扩展名输入:apk,MIME类型输 ...
- Windows:在特定路径下启动命令行
造冰箱的大熊猫,本文适用于Windows 7@cnblogs 2018/11/30 在Windows文件浏览器中,按下“Shift+鼠标右键”,点击“在此处打开命令窗口”.
- EasyPrtSc sec[1.2] 发布!
//HOMETAG #include<bits/stdc++.h> namespace EasilyPrtSc{ //this namespace is for you to be mor ...
- Codeforces 1213C Book Reading
cf题面 中文题意 多组数据,每组给一个n给一个m,要求正整数\(1\)~\(n\)中,所有能被m整除的数的个位之和. 解题思路 首先,能被m整除的数的数量是\(\lfloor\frac{n}{m}\ ...
- 「HAOI2016」食物链
题目链接 解题思路 简单的DAG上DP即可. 参考程序 #include <bits/stdc++.h> using namespace std; const int Maxn = 100 ...
- javascript插件制作学习-制作步骤
原生JavaScript插件开发学习 自己制作的demo大家可以看下https://www.cnblogs.com/zimengxiyu/p/9814889.html 插件制作步骤: (一)构造函数 ...
- String、toString、String.valueOf()三个有啥区别?
今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下 ...
- C++入门经典-例4.8-同名的全局变量和局部变量
1:代码如下: // 4.8.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using ...
- How does ASP.NET Forms Authentication really work?
I've always wondered how exactly ASP.NET forms authentication works. Yes, I know how to configure Fo ...