Django中models下常用Field以及字段参数
常见的FieldType数据库字段类型
1、AutoField:自增Field域,自动增加的一个数据库字段类型,例如id字段就可以使用该数据类型,参数中必须填入primary_key=True
2、BigAutoField:和AutoField相同,只是比AutoField要大,参数中必须填入primary_key=True
3、BigIntegerField:大整型,只要用于存储整型的数据
4、BinaryField:主要是存储原始的二进制数据
5、BooleanField:主要是存储布尔类型的数据,0和1
6、CharField:主要存储字符串的数据类型
7、DateField:主要存储日期类型的数据类型,日期格式为YYYY-MM-DD
8、DateTimeField:主要存储时间相关的数据类型,格式为YYYY-MM-DD HH:MM:[ss[.uuuuuu]][TZ]
注意:DateField与DateTimeField有两个属性,配置auto_now_add=True,创建数据记录的时候会把当前时间添加到数据库,配置auto_now=True,每次更新数据记录的时候都会更新该字段
9、DecimalField:主要存储固定精度的十进制数据
--参数:max_digits(小数总长度)/decimal_places(小数位长度)
10、EmailField:存储电子邮件格式的数据,Django Admin以及ModelForm中提供验证机制
11、FileField:存储文件类型的数据,文件上传到指定目录
--参数:upload_to="...."(上传文件的保存路径)/storage=None(存储组件,默认django.core.files.storage.FileSystemStorage)
12、FilePathField:存储文件路径的数据,提供读取文件夹下文件的功能
--参数:path(文件夹路径)/match=None(正则匹配)/recursive=False(递归下面的文件夹)/allow_files=True(允许文件)/allow_folders=False(允许文件夹)
13、FloatField:存储浮点型数据
14、ImageField:存储图片型数据,文件上传到指定目录
--参数:upload_to="....."(上传文件的保存路径)/storage=None(存储组件,默认django.core.files.storage.FileSystemStorage)/width_field=None(上传图片的宽度保存的数据库字段名<字符串>)/height_field=None(上传图片的高度保存的数据库字段名<字符串>)
15、IntegerField:存储整型数据
16、GenericIPAddressField:存储IP地址信息数据
17、NullBooleanField:可以存储布尔值数据,也可以存储空null数据
18、PositiveIntegerField:主要存储正整数数据
19、SmallIntegerField:小整型,主要用于存储整型的数据
20、TextField:存储文章内容信息数据,存储比较长的文本信息
21、TimeField:存储时间信息
22、URLField:存储URL网址信息,Django Admin以及ModelForm中提供验证url
23、IPAddressField:Django Admin以及ModelForm中提供验证IPV4机制
24、GenericIPAddressField:Django Admin以及ModelForm中提供验证IPV4和IPV6机制
常用关系型数据表处理Field
1、处理一对多关系数据表:使用 ForeignKey
1. 一般外键字段定义在多的一方
2.外键字段的第一个参数是一个位置参数,就是要关联的模型,可以是模型类本身,也可以是字符串形式的导入路径(当引用其他应用的模型,和引入后定义的模型时很有用)
3.在数据库层面,django会在字段名的后面附加 '_id'来创建数据库列名。
4.注意:有时候为了效率,在数据库不会创建外键,在django中可以通过 ForeignKey 字段中指定 db_constraint=False 来不创建外键约束
2、处理多对多关系数据表:使用 ManyToManyField
3、 处理一对一关系数据表:使用 OneToOneField
一对多:外键字段在多的一方
多对多:外键字段统一建在第三张关系表
一对一:建议放在查询频率较高的表
具体介绍可以查看 https://docs.djangoproject.com/en/3.2/ref/models/fields/#module-django.db.models.fields
Django中models下常用Field以及字段参数的更多相关文章
- django中models field详解
本文参考自:django官方文档models/field 在model中添加字段的格式一般为: field_name = field_type(**field_options) 一 field o ...
- django中models阅读笔记
一.使用数据库需要设置settings.py文件. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # Add 'postgre ...
- Django中ORM模板常用属性讲解
学习了ORM模板中常用的字段以及使用方法,具体如下: from django.db import models # Create your models here. # 如果要将一个普通的类映射到数据 ...
- Django中的form设置field的html属性
在Django中无论何种field,都有一个widget的属性: class Field(object): widget = TextInput # Default widget to use whe ...
- Django中models定义的choices字典使用get_FooName_display()在页面中显示值
问题 在django的models.py 中,我们定义了一些choices的元组,类似一些字典值,一般都是下拉框或者单多选框,例如 0对应男 1对应女等等 看下例子: class Area(model ...
- django中models字段的联合限制
一.字段联合使用的限制设置: 有这么个需求,现有两个字段,A字段是选择用户是不是vip, B字段是统计用户的vip等级; 要求: 用户不是vip时,A选择false,B字段为空; 是vip时,A字段选 ...
- django 中models表的多对一,多对多的理解
django 表的理解 好处:设计的好,会清晰,易于理解和维护,后期开发事半功倍,一目了然. 1. 一对一的表,两表的属性实际上完全可以合并成一个表,共用一个主键即可: 2. 一对多的表,可以设中间关 ...
- django中models联合唯一unique_together
例: 文章点赞 class ArticleUpDown(models.Model): """ 点赞表 """ nid = models.Au ...
- 详解Django中六个常用的自定义装饰器
装饰器作用 decorator是当今最流行的设计模式之一,很多使用它的人并不知道它是一种设计模式.这种模式有什么特别之处? 有兴趣可以看看Python Wiki上例子,使用它可以很方便地修改对象行为, ...
- Django中六个常用的自定义装饰器
装饰器作用 decorator是当今最流行的设计模式之一,很多使用它的人并不知道它是一种设计模式.这种模式有什么特别之处? 有兴趣可以看看Python Wiki上例子,使用它可以很方便地修改对象行为, ...
随机推荐
- pytest+allure接口自动化
python类库依赖: pip3 install pytestpip3 install allure-pytestpip3 install rerequestspip3 install pytest- ...
- jekins+shell
1.安装jekins,常规的有直接下载war包,或者安装docker版本的安装. 2.启动命令 #war版本启动 nohup java -jar jenkins.war --ajp13Port=-1 ...
- [iOS]获取地理位置信息
1.在工程的 info.plist 文件中增加两个key( 右键 - Add Row ) Privacy - Location Always and When In Use Usage Descrip ...
- Linux 第十节( APACHE )
Apache 基金会,软件 http 协议 httpd 软件包 vim /etc/httpd/conf/httpd.conf //网站配置主文件 systemctl restart http ...
- laravel phpstorm ide-helper
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ composer create-proj ...
- vue 中 表单数据为数组,v-for 循环表单数据
element-ui 中,表单数据一般为对象,但是也有是数组的情况,比如上面图示:账号和密码可以是多个,点击添加会增加一条,点击删除会删除一条 表单数据为 form:{ accounts:[ { ac ...
- git submodule .gitmodules 子模块
初始化 git submodule init 添加子项目 git submodule add -b xxxx {path} -b 指定分支 path 可为空 (不知为何, 直接写在 .gitmodul ...
- Attention:何为注意力机制?
本文来自公众号"AI大道理" 人类利用有限的注意力资源从大量信息中快速筛选出高价值信息,这是人类在长期进化中形成的一种生存机制,人类视觉注意力机制极大地提高了视觉信息处理的效 ...
- RSS经典教程
RSS经典教程 作者:OLD HELPSoldhelps@126.com RSS 指 Really Simple Syndication(真正简易联合) RSS 使您有能力聚合(syndicate)网 ...
- 蓝桥杯训练赛二-1199 问题 E: 哥德巴赫曾猜测
题目描述 德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和.但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对 输入 输 ...