最近在做一个小案例的时候遇到了Math.max.apply这么一个用法,之前很少遇到过感觉挺有趣的,就记录一下。1Math.max语法:Math.max(n1,n2,n3,...,nX)返回值:max()方法可返回指定的参数中带有较大的值的那个数vara=Math.max(1,2,3,4);console.log(a);//4但是如果数据是放在一个数组里面,此时就不能这样调用了。这时就用到apply方法2Math.max.applyapply()方法调用一个函数。简单理解为调用函数的方式,但是它可以改变函数的...
继续阅读 >
分类:编程语言
2020
10-09
10-09
基于CentOS搭建Python Django环境过程解析
安装setuptools工具任务时间:1min~5min安装yuminstallpython-setuptools-y因为之后我们需要安装Django,而Django需要用这个工具,所以我们需要先安装setuptools工具。下载与安装Django任务时间:5min~20min下载Django[Django是什么?]wgethttps://www.djangoproject.com/m/releases/1.11/Django-1.11.3.tar.gzDjango是一个开放源代码的Web应用框架,我们将使用它支持我们的PythonWeb开发。解压Djangotar...
继续阅读 >
2020
10-09
10-09
Kotlin作用域函数之间的区别和使用场景详解
作用域函数Kotlin的作用域函数有五种:let、run、with、apply以及also。这些函数基本上做了同样的事情:在一个对象上执行一个代码块。下面是作用域函数的典型用法:valadam=Person("Adam").apply{age=20city="London"}println(adam)如果不使用apply来实现,每次给新创建的对象属性赋值时就必须重复其名称。valadam=Person("Adam")adam.age=20adam.city="London"println(adam)作用域函数没有引入任何新的技术...
继续阅读 >
2020
10-09
10-09
详解Django中views数据查询使用locals()函数进行优化
优化场景利用视图函数(views)查询数据之后可以通过上下文context、字典、列表等方式将数据传递给HTML模板,由template引擎接收数据并完成解析。但是通过context传递数据可能就存在在不同的视图函数中使用重复的查询语句,所以可以通过将重复查询语句设置全局变量,配合locals()函数进行数据查询与传递。优化前defindex(request):threatname='威胁情报展示'url='www.testtip.com'allthreat=Threat.objects.all()#...
继续阅读 >
2020
10-09
10-09
python3让print输出不换行的方法
python3.x版本print输出不换行的格式如下:print(x, end="")其中,end=""可使输出不换行,不能省略。举例:输出结果:内容扩展:python3.x中如何实现print不换行大家应该知道python中print之后是默认换行的,那如何我们不想换行,且不想讲输出内容用一个print函数输出时,就需要改变print默认换行的属性,方法如下:print('contents',end='!@#$%^&*')end就表示print将如何结束,默认为end="\n"(换行)栗子:print("祝各位...
继续阅读 >
2020
10-09
10-09
在Vue中使用HOC模式的实现
前言HOC是React常用的一种模式,但HOC只能是在React才能玩吗?先来看看React官方文档是怎么介绍HOC的:高阶组件(HOC)是React中用于复用组件逻辑的一种高级技巧。HOC自身不是ReactAPI的一部分,它是一种基于React的组合特性而形成的设计模式。HOC它是一个模式,是一种思想,并不是只能在React中才能用。所以结合Vue的特性,一样能在Vue中玩HOC。HOCHOC要解决的问题并不是说哪种技术新颖,就得使用哪一种。得看这种技术能够解决哪...
继续阅读 >
2020
10-09
10-09
详解Howler.js Web音频播放终极解决方案
前言相信有很多人在写移动端音频播放的时候都踩过不少坑,特别是复杂音频项目在兼容多种设备的时候更是让你抓狂,比如ios端不能一开始就播放音频,必须要用户进行了操作。。。。偶然间了解到了一个兼容所有设备和浏览器的音频引擎Howler.js使用了一下非常完美Howler.js是一个新的JavaScript库用于处理Web中的音频,该库最初是为一个HTML5游戏引擎所开发,但也可用于其他的Web项目,Howler.js基于Google的WebAudioA...
继续阅读 >
2020
10-09
10-09
浅谈SpringBoot2.4 配置文件加载机制大变化
前言SpringBoot2.4.0.M2刚刚发布,它对application.properties和application.yml文件的加载方式进行重构。如果应用程序仅使用单个application.properties或application.yml作为配置文件,那么可能感受不到任何区别。但是如果您的应用程序使用更复杂的配置(例如,SpringCloud配置中心等),则需要来了解更改的内容以及原因。为什么要进行这些更改随着最新版本SpringBoot发布,Spring一直在努力提升对Kubernetes...
继续阅读 >
2020
10-09
10-09
ubuntu20.04 LTS系统默认源sources.list文件的修改
如果不慎修改了source.list内容,导致一系列错误,建议恢复默认源文件。sudogedit/etc/apt/sources.list然后把下面默认源内容复制进去ubuntu20.LTS系统默认源sources.list文件内容#debcdrom:[Ubuntu20.04LTS_FocalFossa_-Releaseamd64(20200423)]/focalmainrestricted#Seehttp://help.ubuntu.com/community/UpgradeNotesforhowtoupgradeto#newerversionsofthedistribution.debhttp://cn.archive.ubuntu...
继续阅读 >
2020
10-09
10-09
Django3中的自定义用户模型实例详解
介绍嗨,在这篇文章中,我们将学习在Django3中创建自定义用户模型,并且还将更改DjangoAdmin的默认登录功能。我们将使用电子邮件和密码登录。动机我必须为我的应用程序创建一个“自定义用户”,我能够创建模型,但问题是createsuperuser命令无法正常工作。为了调试它,我不得不做大量研究,问题是当时大多数资源已经过时,所以我决定写这篇文章。我做了一个GitHub仓库,所以如果您愿意,可以直接使用它(这里有说明)让我们开...
继续阅读 >
2020
10-09
10-09
修改ubuntu 18.04的sources.list源为阿里或清华镜像的方法
1.备份源列表Ubuntu缺省的配置的源并不是国内的服务器,下载更新软件都比较慢,本文介绍如何设置源列表,选择比较快的源以节省下载时间。#首先备份源列表sudocp/etc/apt/sources.list/etc/apt/sources.list_backup2.打开sources.list文件修改选择合适的源,替换原文件的内容,保存编辑好的文件,以阿里云更新服务器为例(从实际测试上结果分析,个人认为阿里云比网易和搜狐的服务器要快):sudovim/etc/apt/sources.list3....
继续阅读 >
2020
10-09
10-09
Linux利用lsof/extundelete工具恢复误删除的文件或目录
前言Linux不像windows有那么显眼的回收站,不是简单的还原就可以了。linux删除文件还原可以分为两种情况,一种是删除以后在进程存在删除信息,一种是删除以后进程都找不到,只有借助于工具还原。这里分别检查介绍下一,误删除文件进程还在的情况。这种一般是有活动的进程存在持续标准输入或输出,到时文件被删除后,进程PID还是存在。这也就是有些服务器删除一些文件但是磁盘不释放的原因。比如当前举例说明:通过一个shell终端对...
继续阅读 >
2020
10-09
10-09
利用React高阶组件实现一个面包屑导航的示例
什么是React高阶组件React高阶组件就是以高阶函数的方式包裹需要修饰的React组件,并返回处理完成后的React组件。React高阶组件在React生态中使用的非常频繁,比如react-router中的withRouter以及react-redux中connect等许多API都是以这样的方式来实现的。使用React高阶组件的好处在工作中,我们经常会有很多功能相似,组件代码重复的页面需求,通常我们可以通过完全复制一遍代码的方式实现功能,但是这样页...
继续阅读 >
2020
10-09
10-09
详解Java 集合类 List 的那些坑
现在的一些高级编程语言都会提供各种开箱即用的数据结构的实现,像Java编程语言的集合框架中就提供了各种实现,集合类包含Map和Collection两个大类,其中Collection下面的List列表是我们经常使用的集合类之一,很多的业务代码都离不开它,今天就来看看List列表的一些坑。第一个坑:Arrays.asList方法返回的List不支持增加、删除操作例如我们执行以下代码:List<String>strings=Arrays.asList("m","g");strings....
继续阅读 >
2020
10-09
10-09
vue中watch和computed的区别与使用方法
computed计算属性说明:computed是基于响应性依赖来进行缓存的。只有依赖数据发生改变,才会重新进行计算(当触发重新渲染,若依赖数据没有改变,则computed不会重新计算)。若没改变,计算属性会立即返回之前缓存的计算结果。不支持异步,当computed内有异步操作时无效,无法监听数据的变化的值。computed中的成员可以只定义一个函数作为只读属性,也可以定义成get/set变成可读写属性如果一个属性是由其他属性计算而来的...
继续阅读 >
2020
10-09
10-09
详解ubuntu安装CMake的几种方式
apt安装CMakesudoaptinstallcmake这种方式安装方便,缺点是如果想要自己交叉编译Android平台的opencv会提示版本太低,因为ubuntu16.04源里的cmake版本只有3.5.1,而Android交叉编译工具链android.toolchain.cmake要求cmake版本最低是3.6.0下载源码编译CMake到cmake官网下载最新的cmakehttps://cmake.org/download/下载后解压,然后进入目录执行:./bootstrapmake-j8sudomakeinstall验证版本cmake--versioncmakeversion3.9.0CMa...
继续阅读 >
2020
10-09
10-09
vue动态设置页面title的方法实例
本文主要介绍了Vue动态修改title的方法,需要的朋友可以参考学习,方法如下:1.通过自定义指令去修改(单个修改比较好)//1.在main.js页面里添加自定义指令Vue.directive('title',{//单个修改标题inserted:function(el,binding){document.title=el.dataset.title}})//2.在需要修改的页面里添加v-title指令<divv-titledata-title="我是新的标题"></div>.2.使用插件vue-wechat-title//1.安装插件npmvue-wechat-title...
继续阅读 >
2020
10-09
10-09
Vue管理系统前端之组件拆分封装详解
组件封装在上一篇记录中,首页中有太多的代码,为了避免代码的臃肿,需要对主要的功能模块拆分,来让代码看起来更简洁,且能进行复用。拆分后还加了些小功能,加入了修改title的代码,修改方式参考vue动态修改title。还增加了当前请求的页面缓存,使用状态管理器处理。监听路由,保存到state中,来处理的。如何监听可参考vue计算属性和监听属性。完整效果图如下:首页布局拆分后结构拆分后的,布局结构图:拆分后代码布局...
继续阅读 >
2020
10-09
10-09
详解ubuntu安装opencv的正确方法
本文介绍的是如何安装ubuntu下C++接口的opencv1.安装准备:1.1安装cmakesudoapt-getinstallcmake1.2依赖环境sudoapt-getinstallbuild-essentiallibgtk2.0-devlibavcodec-devlibavformat-devlibjpeg-devlibswscale-devlibtiff5-devsudoapt-getinstalllibgtk2.0-devsudoapt-getinstallpkg-config1.3下载opencv下载地址:https://opencv.org/releases/点击Sources进行下载自己需要的版本2.安装2.1解压文件解压后,...
继续阅读 >
2020
10-09
10-09
Python用K-means聚类算法进行客户分群的实现
一、背景1.项目描述你拥有一个超市(SupermarketMall)。通过会员卡,你用有一些关于你的客户的基本数据,如客户ID,年龄,性别,年收入和消费分数。消费分数是根据客户行为和购买数据等定义的参数分配给客户的。问题陈述:你拥有这个商场。想要了解怎么样的顾客可以很容易地聚集在一起(目标顾客),以便可以给营销团队以灵感并相应地计划策略。2.数据描述字段名描述CustomerID客...
继续阅读 >
2020
10-09
10-09
pandas参数设置的实用小技巧
前言在日常使用pandas的过程中,由于我们所分析的数据表规模、格式上的差异,使得同样的函数或方法作用在不同数据上的效果存在差异。而pandas有着自己的一套参数设置系统,可以帮助我们在遇到不同的数据时灵活调节从而达到最好的效果,本文就将介绍pandas中常用的参数设置方面的知识。图11设置DataFrame最大显示行数pandas设置参数中的display.max_rows用于控制打印出的数据框的最大显示行数,我们使用pd.set_option()来有针对的...
继续阅读 >
2020
10-09
10-09
一篇文章教你3分钟如何发布Qt程序
导读:Qt程序编写好以后该如何发布。本文教你使用Qt自带工具windeployqt来进行操作。本文字数:500,阅读时长大约:3分钟(1)编写一个简单的程序我们先做一个简单的窗口,添加一个图片资源文件,放置到窗口当中。选择添加QtResourceFile文件类型选择资源文件的路径,并为它命名点击完成设置资源前缀,如果资源层次不是很复杂的话,可以只设置一层,用"/"表示点击AddFiles添加一个图片文件在主窗口中添加一个ToolButton,设置...
继续阅读 >
2020
10-09
10-09
tomcat单机多实例的实现
1、前言 首先要回答一个问题,为什么要用单机多实例?在不宕机的情况下,webapps里面存在多个项目,可能由于其中一个项目过度使用内存或者其他不确定的因素使得tomcat挂了,那么同一tomcat下的项目也会一同挂了;而使用不同的tomcat,同一台服务器下,每个tomcat的进程是不一样的额,一个项目出现问题tomcat挂了,那么由于是在不同进程,其他项目不会影响的。 还有一个问题就是不同tomcat使用了不同端口...
继续阅读 >
2020
10-09
10-09
Vue中keep-alive组件的深入理解
前言最近在写Vue项目的时候,遇到了一个问题,我从A路由使用parmas方式传参跳转到B路由,然后从B路由跳转到C路由,再从C路由返回B路由的时候,发现从A路由传到B路由的参数已经不存在了。正文我们都知道,vue组件进行路由跳转时,会销毁当前组件。所以从其他路由返回当前路由时,当前路由会重新执行生命周期钩子函数。这就导致了上述问题,A路由传到B路由的参数没了。当遇到这种问题的时候,我们会首先想到,我们能不能让B路由的数...
继续阅读 >