1.问题 有些特定的时候,使用Tab切换时需要获取当前选中栏的ID来进行操作 1 2....解决思路 通过定义一个函数进行函数绑定,函数会传递过去当前对象,通过当前对象获取对象属性 1 3.解决方法 下面展示一些 内联代码片。...tabOne', } }, methods: { tabClick(tab, event) { console.log(this.tabName) //获取当前元素属性...name console.log(event.target.getAttribute('id')) //获取到当前元素的id if(this.tabName == tabOne
在前久发现,uptime经常监控到网站504,在防火墙查看日志才知道,它把我CDN全拦截了,但是我明明设置了获取真实IP,还是把我CDN拦截了,中途我换了CDN,发现同样配置有些CDN是真实IP,有些没有...我通过问度娘,给出的方法无非就是在面板开启CDN,或者通过修改日志格式,再或者通过加入下面这个获取真实IP: set_real_ip_from 0.0.0.0/0;real_ip_header X-Forwarded-For...; 根据我的实验,通过修改日志格式的方法确实能在网站日志里看到真实IP,但是防火墙里默认的还是CDN或者其中转IP,这样的话,在防火墙里设置的一些拦截IP的规则就没用了,还会严重影响我们网站业务的进行。...问了一下在线客服,估计也是不懂, 直接扔给我上面截图的地址。 然后我想了下,既然都是通过获取请求头的方式获取IP,那么是否是因为这些CDN的请求头的问题,我换一下获取规则就行了呢?...于是我修改了一下网上获取请求头的规则,完美解决了防火墙无法获取真实IP。 将下面代码添加进nginx的http字段里即可: 此处内容已隐藏,请评论后刷新页面查看.
背景: 在一次处理excel批量数据导入时,需要导入一个订单的发货时间,导入模板中对应的时间那一列使用的是日期格式。...原因: 因为excel中的时间是从1900年开始的,而转换成文本类型的数字则代表着1900年之后的N天,知道这个原理之后,就很好解决这个问题了: /** * 将日期数字转为时间格式...int mills = (int) Math.round(bd.subtract(new BigDecimal(days)).doubleValue() * 24 * 3600); //获取时间
刚刚在看>一书的”ENUM类型”一节, 以下面的代码举例, 得出结论: “还可以看出对于不在ENUM指定范围内的值时, 并没有返回警告, 而是插入了enum(‘M’, ‘F’)的第一个值...’M’“ 但是当我插入另外一种值’S’时, 却提示我”Data truncated for enumColumn at row 1″ 我想问这个结论是否正确?...这个相当于是一个警告信息,在我本地测试的 5.7 中,直接插入会报错,但是使用 ignore 后,数据能被强制插入,但是是空值。...INSERT ignore INTO user (sex) VALUES (5); 在服务器使用 MySQL 5.5 测试 无论是否添加 ignore 数据都能被插入,但是是空值。...在 MySQL 枚举类型的“八宗罪” 这篇文章的第七条,文中提到了,如果不合法会被处理成空字符串,在后一段中又提到了因为类型的缘故,会根据枚举索引去取值。
我们前端工程师需要做的就是将分享的参数在这个网页的地址栏进行获取并展示在信息确认页面。 URL地址(例):https://www.baidu.com/?...,身份证号,投保单号这三个字段的参数的值。...使用正则表达式取出我们需要的数组对象。 // 使用正则表达式取出投保人applicantName,身份证号idNo,投保单号applicationNo,三个参数的值。...这个时候我们需要取出这个数组中,applicantName,idNo,applicationNo三个字段的值。...提供一种获取url的思路,有兴趣的同志也可以试试location.search,字符串截取等多种方式。
此时可以使用distinct(),注意只有在PostgreSQL中支持按字段去重。)...返回一个可迭代的字典序列 values_list() 返回一个可迭代的元祖序列 返回具体对象的 get() first() last() 返回布尔值的方法有: exists() 返回数字的方法有 count...("book__title") ManyToManyField class RelatedManager "关联管理器"是在一对多或者多对多的关联上下文中使用的管理器。...键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。...如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的比较。F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值。
此时可以使用distinct(),注意只有在PostgreSQL中支持按字段去重。)....objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 models.Tb1.objects.filter(id__in=[11, 22,...("book__title") ManyToManyField class RelatedManager “关联管理器”是在一对多或者多对多的关联上下文中使用的管理器。...键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。...如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的比较。F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值。
此时可以使用distinct(),注意只有在PostgreSQL中支持按字段去重。)...("book__title") ManyToManyField class RelatedManager "关联管理器"是在一对多或者多对多的关联上下文中使用的管理器。...键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。...如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的比较。F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值。...,否则,创建 # defaults 指定创建时,其他字段的值 obj, created = models.UserInfo.objects.get_or_create(username=
此时可以使用distinct(),注意只有在PostgreSQL中支持按字段去重。)...values_list() 返回一个可迭代的元祖序列 返回具体对象的 get() first() last() 返回布尔值的方法有 exists() 返回数字的方法有 count() 单表查询之神奇的双下划线...键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。...如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的比较。F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值。...,否则,创建 # defaults 指定创建时,其他字段的值 obj, created = models.UserInfo.objects.get_or_create(username=
目录索引的优化查询集的延迟加载使用select_related进行关联查询使用prefetch_related进行预取延迟计算字段使用values()和values_list()方法选择需要的字段使用annotate...使用values()和values_list()方法选择需要的字段默认情况下,查询集返回完整的模型对象。...但有时我们只需要获取特定字段的值,这时可以使用values()或values_list()方法来选择需要的字段,以减少数据传输和内存占用。...values()方法返回一个字典列表,每个字典对应一个模型对象的字段和值:values = MyModel.objects.values('field1', 'field2')values_list()...使用annotate()进行聚合查询Django的annotate()方法可以进行聚合查询,它可以在查询时计算额外的聚合值,并将结果添加到每个对象上。
,自带的sqlite3对日期格式数据不敏感,如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 搭建方式 任意创建一个py文件,在该文件内书写固定的配置 import os if __...QuerySet类型数据,类似于list,里面放的是排序后的模型类的对象,可用索引下标取出模型类的对象 参数的字段名要加引号 降序为在字段前面加个负号 - def book(request):...查询部分字段 values_list() 方法用于查询部分字段的数据,values_list() 方法用于查询部分字段的数据 def book(request): book_obj = models.Book.objects.values_list...('数据查询成功') values和values_list区别 values查询返回的结果是列表套字典的形式,字段名和数据都能够获取到 values_list查询返回的结果是列表套元组的形式...,可以在test下测试 方式二:使用对象.query获取原生SQL() from app01 import models res = models.Book.objects.filter(pk=2) print
回顾 上次咱们学习了一下Django ORM的基本查询操作。 查询操作主要使用的是filter()方法。...我们知道filter()查询出来的是值,如果想取第一个值需要再filter().first()才行。 还知道了get()和filter().first()的区别等等。...总结 对象.外键字段拿到的就是外键字段对象,直接就可以通过对象.外键字段.外键属性获取具体值。 反向查询(表名__set.all()) 上述我们是通过正向查询的方式查询到了书对应的出版社具体信息。...values返回的值有点像列表套字典,但是其实本质还是QuerySet类型。 values_list values_list和values功能一样,都是取相关的列,但是返回的类型格式不一样。...总结 本篇主要还是上篇的继续补充,还是关于filter的查询部分。 本次主要有外键字段类型,反向查询默认使用__set,还可以使用related_name反向字段查询。
choices 由二项元组构成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。 ...('JR', 'Junior'), ('SR', 'Senior'), ('GR', 'Graduate'), ) 每个元组中的第一个元素,是存储在数据库中的值;第二个元素是在管理界面或...在一个给定的 model 类的实例中,想得到某个 choices 字段的显示值,就调用 get_FOO_display 方法(这里的 FOO 就是 choices 字段的名称 )。...choice 显示的值: {{ get_shirt_size_display }} view 里获取 choice 显示的值: class UserProfile(AbstractUser):...= ['username', 'gender'] for p in User.objects.all().values_list(*values_list): print(p)
(), reverse(), values(), values_list(), distinct() 返回结果是对象: get(), first(), last() 返回结果是布尔值: exists()...user_name字段 psws += " " + i.psw # 获取psw字段 mails += " " + i.mail # 获取mail...): '''获取user_name="yoyo" and psw="123456"对应的mail值 查找为空时,返回null''' r = "" ret = User.objects.filter...()和filter()返回的都是可迭代的queryset序列,平常我们习惯获取字典的对象,可以用values()方法获取 User.objects.all().values(“user_name”, “...().order_by(“mail”).reverse() values_list() 由queryset对象调用, 返回值是queryset 一个元组序列 和values差不多,只是这里返回的是元组
to 设置要关联的表 to_field 设置要关联的表的字段 related_name 反向操作时,使用的字段名,用于代替原反向查询时的'表名_set'。...through 在使用ManyToManyField字段时,Django将自动生成一张表来管理多对多的关联关系。...是属性名称),然后select book.title,book.price的字段值 .values_list("title","price") #values或者values_list...F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值。...,后面写values方法是获取的这些对象的属性的值,当然,可以加双下划线来连表获取其他关联表的数据,但是获取的其他关联表数据是你的这些model对象对应的数据,而关联获取的数据可能不是你想要的最大值对应的那些数据
() values_list(*fields, flat=False) 与values()类似,只是在迭代时返回的是元组而不是字典。...每个元组包含传递给values_list()调用的相应字段或表达式的值,因此第一个项目是第一个字段等。....]> 如果有多个字段,传递flat将发生错误。 如果不传递任何值给values_list(),它将返回模型中的所有字段,以在模型中定义的顺序。 常见的情况是获取某个模型实例的特定字段值。...当最初获取数据时不知道是否需要这些特定字段的情况下,如果正在使用查询集的结果,可以告诉Django不要从数据库中检索它们。...update_or_create方法尝试通过给出的kwargs 去从数据库中获取匹配的对象。 如果找到匹配的对象,它将会依据defaults 字典给出的值更新字段。
另外,查询到的QuerySet又是缓存的,当再次使用同一个QuerySet时,并不会再查询数据库,而是直接从缓存获取(不过,有一些特殊情况)。...,字段值只能是聚合函数,因为使用annotate时,会用group by,所以只能用聚合函数。...Author.objects.filter(**kwargs)对应的SQL只返回主表(即Author表)的所有字段值,即使在查询时关联了其它表,关联表的字段也不会返回,只有当我们通过Author instance...一般的,当我们不需要model instance的方法且返回多个字段时,用values(*field),而返回单个字段时用values_list(‘field’,flat=True),这里flat=True...前面提到了对于a = Author.objects.filter(**kwargs)这类语句,对应的SQL只返回主表,即Author的所有字段,并不会返回关联表字段值,只有当我们使用关联表时才会再查数据库返回
(4)unique 如果该值设置为 True, 这个数据字段的值在整张表中必须是唯一的 (5)choices 由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。...在更新多对多的第三张表时,可以直接用以下方法 book_obj.authors.set(*[装有对象id的列表]) 此操作包含了两步clear+add 有时候字段获取的较多,但是需要更新的表里没有那么多字段...,此时需要删除一些字段,但是我们又需要用到这些字段的值时,可以用pop,即达到了删除的效果,也可以拿到对应的删除对象,保存下来进行其他操作 关键点:book_obj.authors是什么? ...如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的比较。F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值。 ?...在 Django 删除对象时,会模仿 SQL 约束 ON DELETE CASCADE 的行为,换句话说,删除一个对象时也会删除与它相关联的外键对象。例如: ?
ORM 的最令人诟病的地方就是性能问题,不过现在已经提高了很多,下面是 ORM 的几个缺点 性能问题 自动化进行数据库关系的映射需要消耗系统资源 程序员编码 在处理多表联查、where 条件复杂的查询时...和 select_related 类似,prefetch_related 在查询时会同时取出关联实例的值。...`content` + 2)) values 和 values_list 有些时候我们不需要获取实例中所有的数据,而只需要获得几个字段的数据即可,使用 values 和 values_list 可以指定检索的字段...annotate 默认按照 id 进行分组,如果需要按其他字段分组,要结合 values /values_list 方法。...') for blog in blogs: print blog.id , blog.title 如果 SQL 中没有获取某个字段,那么会惰性加载该字段 # 没有取 title,在后面使用时会访问数据库
,有想学习django的同学可以在公众号后台回复“django”,获取入群方式。...中特定的值,同样 ModelB 也只能对应 ModelA 中特定的值 Model 的常用设置参数 null=(True/False) 数据库中字段是否可以为空 blank=(True/False...) django的 Admin 中添加数据时是否可允许空值 primary_key=(True/False) 主键,对 AutoField 设置主键后,就会代替原来的自增 id...max_length=(int) 最大长度,多和字符串类型配合使用 verbose_name='xxxx' Admin 中字段的显示名称 name|db_column...中使用 cursor.execute("SELECT c.id, c.name FROM blog_category as c") # 获取查询到的第一个数据 row = cursor.fetchone
领取专属 10元无门槛券
手把手带您无忧上云