首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【愚公系列】2022年01月 Python教学课程 40-Django框架之模型属性详解

默认小写app应用名_小写模型类名为数据库表名。...2) 关于主键 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...字符串,参数max_length表示最大字符个数 TextField 大文本字段,一般超过4000个字符使用 IntegerField 整数 DecimalField 十进制浮点数, 参数max_digits...,blank是表单验证范畴的 6) 外键 在设置外键,需要通过on_delete选项指明主表删除数据,对于外键引用表数据如何处理,在django.db.models中包含了可选常量: CASCADE...允许为null可用 SET_DEFAULT设置为默认值,仅在该字段设置了默认值可用 SET()设置为特定值或者调用特定方法 DO_NOTHING不做任何操作,如果数据库前置指明级联性,此选项会抛出IntegrityError

1.4K20

Django模型

django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...默认创建的主键列属性为id,也可以使用pk,意为primary key. 字段名称中不能出现双下划线,因为这是Django的查询语法之一。...BooleanField 布尔字段,值为True或False NullBooleanField 支持Null、True、False三种值 CharField 字符串,参数max_length表示最大字符个数...TextField 大文本字段,一般超过4000个字符使用 IntegerField 整数 DecimalField 十进制浮点数, 参数max_digits表示总位数, 参数decimal_places...,此选项会抛出IntegrityError异常 注意:我们在数据库中,设置外键的时候需要制定另一张表中关联的字段,但是在Django里并没有指定。

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

Django debug page XSS漏洞(CVE-2017-12794)分析

0x01 补丁分析 因为官方说明是500页面中出现的BUG,所以我们重点关注的就是django/views/debug.py。...我们可以做个简单的测试,在Django命令行下,我们创建一个username为phith0n的用户,然后再次创建一个username为phith0n的用户,则会抛出一个IntegrityError异常:...为什么Django会引入这样一个异常机制?这是为了方便开发者进行SQL错误的调试,因为Django的模型最终是操作数据库,数据库中具体出现什么错误,是Django无法100%预测的。...0x03 漏洞复现 经过我的测试,我发现在使用Postgres数据库并触发异常的时候,psycopg2会将字段名和字段值全部抛出。...那么,如果字段值中包含我们可控的字符串,又由于0x02中说到的,这个字符串其实就会被设置成__cause__,最后被显示在页面中。

1.5K41

Django中的AutoField字段使用

Django是一个机智的框架】 默认情况下Djang会为ORM中定义的每一张表加上一个自增ID列,并且用这个列来做主键;出于一个MySQL-DBA的工作经历我觉得 Djanog还真是机智;这样么说主要是因为我遇到过许多主从延时的问题...补充知识:Django中models下常用Field以及字段参数 一、常见的FieldType数据库字段类型 1、AutoField:自增Field域,自动增加的一个数据库字段类型,例如id字段就可以使用该数据类型...primary_key=True 3、BigIntegerField:大整型,只要用于存储整型的数据 4、BinaryField:主要是存储原始的二进制数据 5、BooleanField:主要是存储布尔类型的数据,0和...<字符串 )/height_field=None(上传图片的高度保存的数据库字段名<字符串 ) 15、IntegerField:存储整型数据 16、GenericIPAddressField:存储IP地址信息数据...4、default:为该字段设置默认值 四、关系字段 1、to:设置要关联的表 2、to_field:设置要关联的表的字段 3、related_name:反向操作,使用的字段名,用于代替原反向查询

6.4K20

django_mysql_配置

默认 小写app应用名_小写模型类名 为数据库表名。...2) django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...默认创建的主键列属性为id,可以使用pk代替,pk全拼为primary key。 3) 字段类型 ? 4) 选项 ?...null是数据库范畴的概念,blank是表单验证范畴的 5) 外键 一般我用CASCADE 在设置外键,需要通过on_delete选项指明主表删除数据,对于外键引用表数据如何处理,在django.db.models...设置为NULL,仅在该字段null=True允许为null可用 SET_DEFAULT 设置为默认值,仅在该字段设置了默认值可用 SET() 设置为特定值或者调用特定方法,如 from

1.6K10

django 1.8 官方文档翻译:6-3 Django异常

FieldDoesNotExist exception FieldDoesNotExist[source] 当被请求的字段在模型或模型的父类中不存在,FieldDoesNotExist异常由模型的 _...FieldError exception FieldError[source] FieldError异常当模型字段出现问题产生。它会由以下原因造成: 模型中的字段与抽象基类中相同名称的字段冲突。...ValidationError exception ValidationError[source] 当表单或模型字段验证失败抛出ValidationError异常。...models.ProtectedError is a subclass of IntegrityError. Http异常 HTTP异常由django.http导入。...本文 CC BY-NC-SA 3.0 协议发布,转载请保留作者署名和文章出处。 Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。

1.3K20

Django之QuerySet详解

当最初获取数据不知道是否需要这些特定字段的情况下,如果正在使用查询集的结果,可以告诉Django不要从数据库中检索它们。...,它将替换立即加载的字段集。...如果model中有一个你手动设置的主键,并且这个值已经存在于数据库中, 调用create()将会失败并且触发IntegrityError因为主键必须是唯一的。...如果需要创建一个对象而该对象的主键早已存在于数据库中,IntegrityError异常将会被触发。 这个方法假设进行的是原子操作,并且正确地配置了数据库和正确的底层数据库行为。...QuerySet通常会在内部缓存其结果,以便在重复计算不会导致额外的查询。而iterator()将直接读取结果,不在QuerySet级别执行任何缓存。

2.3K20

django自定义非主键自增字段类型详解(auto increment field)

1.django自定义字段类型,实现非主键字段的自增 # -*- encoding: utf-8 -*- from django.db.models.fields import Field, IntegerField...,这个字段可以是主键,也可以不是主键,如果不是主键,则必须设置为一种“键(key)” # (primary key)也是键(key)的一种,key还包括外键(foreign key)、唯一键(unique...使用字段用于指定关系表 through_fields=None, # 自定义第三张表,使用字段用于指定关系表中那些字段做多对多关系表 from django.db import models class...数据库中表的名称 ForeignKey外键(跨表操作): 跨表操作1 v = models.Host.objects.filter(nid__gt=0) v[0].b.caption #通过.进行跨表操作...前端: <td {{ row.b__caption }}</td # 用双下划线做跨表操作 以上这篇django自定义非主键自增字段类型详解(auto increment field)就是小编分享给大家的全部内容了

2.2K10

Mysql基础

字符串常量区分大小写。建议命令大写,表名库名小写; SQL语句可单行或多行书写,“;”结尾。关键词不能跨多行或简写。 用空格和缩进来提高语句的可读性。...unique not null auto_increment 主键字段必须是数字类型。...单字段主键 主键字段特点:非空且唯一 create table users( id INT primary key, name varchar(20)...其次,在进行查找、比较,由于date和datetime本质上存储在数据库中是一个数字,所以直接通过数值比较效率很高,而varchar进行比较 必需要一个字符一个字符比较,所以速度很慢。...  表中数据三条,id分别为1,2,3,突然插入一个id=7,那么下次作为主键的字增长的id会从几开始增长呢?

4.2K20

django 1.8 官方文档翻译: 2-3-1 模型实例参考

这个键用于整个模型出现的错误而不是一个特定字段出现的错误: from django.core.exceptions import ValidationError, NON_FIELD_ERRORS try...出现这种情况的原因,请参见下面的Django 如何知道是UPDATE 还是INSERT。 显式指定自增主键的值对于批量保存对象最有用,但你必须有信心不会有主键冲突。 当你保存,发生了什么?...当你调用save() Django 使用下面的算法: 如果对象的主键属性为一个求值为True 的值(例如,非None 值或非空字符串),Django 将执行UPDATE。...关于这个细微差别的更多信息,参见上文的显示指定主键的值 和下文的强制使用INSERT 或UPDATE。 在Django 1.5 和更早的版本中,在设置主键的值Django 会作一个 SELECT。...下面是一个建议的开发实践:只定义__unicode__() 并让Django 在需要负责字符串的转换。 __str__ Model.

1.9K10

Python操作MySQL数据库

NULL 可以设置字段的属性为 NOT NULL, 在操作数据库如果输入该字段的数据为NULL ,就会报错。...AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。 PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间逗号分隔。...submission_date DATE, -> PRIMARY KEY ( runoob_id ) -> )ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0...创建 MySql 的表,表名和字段名外面的符号 ` 不是单引号,而是英文输入法状态下的反单引号,也就是键盘左上角 esc 按键下面的那一个 ~ 按键,坑惨了。...反引号是为了区分 MySql 关键字与普通字符而引入的符号,一般的,表名与字段名都使用反引号。

1.6K20

Django 2.1.7 模型类 - 字段类型

本篇章开始将继续看看模型类还可以设置哪些字段类型 参考文献 https://docs.djangoproject.com/zh-hans/2.1/ref/models/fields/ 前面篇章设置好的两个模型类...,还有很多字段类型没有在这两个模型体现出现。...在官方文档中,关于字段类型的描述非常多,如下: 模型字段的定义属性 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列...定义属性需要指定字段类型,通过字段类型的参数指定选项,语法如下: 属性=models.字段类型(选项) 字段类型 使用时需要引入django.db.models包,字段类型如下: AutoField...CharField(max_length=字符长度):字符串。 TextField:大文本字段,一般超过4000个字符使用。 IntegerField:整数。

1.2K10

Django 2.1.7 模型类 - 字段类型

本篇章开始将继续看看模型类还可以设置哪些字段类型 参考文献 https://docs.djangoproject.com/zh-hans/2.1/ref/models/fields/ 前面篇章设置好的两个模型类...,还有很多字段类型没有在这两个模型体现出现。...在官方文档中,关于字段类型的描述非常多,如下: 模型字段的定义属性 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列...定义属性需要指定字段类型,通过字段类型的参数指定选项,语法如下: 属性=models.字段类型(选项) 字段类型 使用时需要引入django.db.models包,字段类型如下: AutoField:...CharField(max_length=字符长度):字符串。 TextField:大文本字段,一般超过4000个字符使用。 IntegerField:整数。

1.7K30

Linux运维70道经典笔试题 需要的拿走

{} /tmp/ \; 20)如何查看/var/log目录下的文件数 [root@xbyqxit test]# ls /var/log/ | wc -l 31 21) 简述Linux启动过程 (一)开机自检...A.开机自检BIOS自检 B.MBR引导系统启动 C.GRUB菜单 D.加载内核镜像 E.从/etc/rc.inittab读取运行级别 F.执行/etc/rc.sysinit脚本 G.根据不同运行级别运行...13)sed 替换字符 14)pwd 显示当前目录路径 15)cd 进入指定目录 16)touch 创建文件 17)tree 树的形式显示目录文件 18)cat,tail,head,more...xbyqxit tmp]# tar xzvf zheng.tar.gz -C / 69)简述解决忘记root密码的方法 进入单用户模式修改 「Linux学习笔记」Linux运维工程师70道基础面试题|练习题笔记 开机出现提示按任意键键入菜单...cut经常用来显示文件的内容,类似于下的type命令 -b:仅显示行中指定直接范围的内容; -c:仅显示行中指定范围的字符; -d:指定字段的分隔符,默认的字段分隔符为“TAB”; -f:显示指定字段的内容

2.6K20

电脑技巧| 使用电脑的经验分享

参看博文:BY战机——基于安卓事件处理的飞机射击游戏 按钮的监听事件 在上面的应用截图中我们看到游戏开始界面使用了"开始游戏"和"退出游戏"的两个按钮。...594 个字符的异常输出。...电脑技巧 3个月前 (01-12) 浏览: 30 评论: 0 有些童鞋的电脑出现故障时候,电脑开机时会发出“滴滴滴”的声音,对于新手来说,这样的滴滴声没有什么区别。...其实这是电脑开机过程中自检的报警声,通过不同的报警声告诉用户电脑的故障发生在哪里,好让用户维修对症下药。...首先,笔者普及一下什么是开机自检 开机自检是电脑开机过程中对自身硬件,如硬盘,内存,显卡,CPU等等 ,进行的检查过程,如果硬件设备出现了故障,就会通过“滴滴”声发出警告,有时会无法开机

2.6K20

django_2

·渲染管理表单使用的默认html控件 ·在管理站点最低限度的验证 ·django会为表增加自动增长的主键列,每个模型只能有一个主键列, 如果使用选项设置某属性为主键列后,...则django不会再生成默认的主键列 ·属性命名限制 ·遵循标识符规则 ·由于django的查询方式,不允许使用连续的下划线 库 ·定义属性,需要字段类型,字段类型被定义在...通常不指定如果不指定,一个主键字段将自动添加到模型中 ·CharField(max_length=字符长度) ·字符串,默认的表单样式是 TextInput ·TextField...,可以实现对字段的约束 ·在字段对象通过关键字参数指定 ·null ·如果为True,Django 将空值NULL 存储到数据库中,默认值是 False ·blank...·在字段对象通过关键字参数指定 ·null ·如果为True,Django 将空值NULL 存储到数据库中,默认值是 False ·blank ·如果为True,则该字段允许为空白

3.6K30
领券