使用Phantomjs和Node完成网页的截屏快照的方法

2019-07-16
由于甲方爸爸的需要,最近使用phantomjs和Node写了一个对网页内容截屏的功能,为了避免忘记,现在将代码内容及配置流程大概描述一下. 1.首先Node是必须安装的,而且网上安装教程一大堆,在此不再赘述,Nodejs官网链接 2.然后,第二个主人公是phantomjs,官网下载地址,选择对应的系统下载对应的安装包 3.将phantomjs配置为系统变量,下面是Windows配置为环境变量: 配置完成之后,在cmd命令行中输入 phantomjs -v 检验是否配置成功,配置成功之后,如下图所

UILabel显示定时器文本跳动问题的解决方法

2019-07-16
先看一个有问题的展示效果: 上面的gif图会发现在显示验证码计数时出现跳动和闪烁的问题.目前大多数用来实现定时器显示的控件都是UILabel. 在iOS9以前系统默认的英文字体是Helvetica, 这种字体每个数字的宽度都是相等的.而在iOS9以后默认的英文字体变为San Fransico字体,这种字体每个数字的宽度是不相等的. 正是因为数字宽度的不相等就导致了用UILabel来显示定时器文本时出现文字跳动闪烁的问题. 因此解决的方案就是选用一种等宽数字字体显示即可.为此有两个解决方案: 用H

Django-Model数据库操作(增删改查、连表结构)详解

2019-07-16
一.数据库操作 1.创建model表 基本结构 from django.db import models class userinfo(models.Model): #如果没有models.AutoField,默认会创建一个id的自增列 name = models.CharField(max_length=30) email = models.EmailField() memo = models.TextField() 更多字段: 1.models.AutoField 自增列= int(11)

微信小程序从注册账号到上架(图文详解)

2019-07-16
前言 自从微信小程序功能发布后,我就一直关注着小程序的动向,然而限于学业繁忙,总是没有太多的时间去学习.大二逐渐学习了Vuejs,被其简洁的设计所吸引,后来看了看小程序的开发文档,发现这么的相似?可能前端的发展趋势就是这样的吧,各个框架都趋向于相似的优秀的设计. 大三逐渐学习了Go语言,为了练习Go语言,同时也将自己几年来积累的东西聚合在一起,于是开发了微信小程序:We中南(可以去微信搜索,虽然现在毕业已经不打算维护了),其聚合了中南大学校内常见的信息查询功能,如:成绩课表查询.校车校历查询等项

Linux环境使用crontab命令设置定时周期性执行任务【含php执行代码】

2019-07-16
本文实例讲述了Linux环境使用crontab命令设置定时周期性执行任务.分享给大家供大家参考,具体如下: 从linux帮助中查看crontab命令有以下参数: -u username:指定用户操作定时器 -e:编辑定时器(所有) -l:查看定时器 -r:删除定时器(从/var/spool/cron目录中删除某个用户的crontab文件,默认删除当前用户的) -i:删除定时器(删除之前给出确认提示) 使用场景1: 执行一些周期性统计的业务操作,例如每天凌晨0:00统计前一天所有业务员及各个小组的

微信小程序-API接口安全详解

2019-07-16
一.接口安全的必要性 最近我们公司的小程序要上线了,但是小程序端是外包负责的,我们负责提供后端接口.这就可能会造成接口安全问题.一些别有用心的人可以通过抓包或者其他方式即可获得到后台接口信息,如果不做权限校验,他们就可以随意调用后台接口,进行数据的篡改和服务器的攻击,会对一个企业造成很严重的影响. 因此,为了防止恶意调用,后台接口的防护和权限校验非常重要. 虽然小程序有HTTPs和微信保驾护航,但是还是要加强安全意识,对后端接口进行安全防护和权限校验. 二.小程序接口防护 小程序的登录过程: 小

浅谈python多进程共享变量Value的使用tips

2019-07-16
前言: 在使用tornado的多进程时,需要多个进程共享一个状态变量,于是考虑使用multiprocessing.Value(对于该变量的具体细节请查阅相关资料).在根据网上资料使用Value时,由于共享的是字符串,但网上介绍的都是整数或者字符,于是遇到了很多阻碍,通过查询官方文档得出了解决方案. 一.Value的构造函数: Value的初始化非常简单,直接类似Value('d', 0.0)即可,具体构造方法为: multiprocessing.Value(typecode_or_type, *

Vue发布项目实例讲解

2019-07-16
项目完成之后,当然不能满足于在我们的开发环境下跑一跑.我们可以打包发布到服务器上,让大家一起来欣赏一下你的作品. 那么 vue 项目如何打包发布呢,新建的项目目录下通常都有一个 README.md 的文件,里面就描述了发布的步骤: 下面这个是 vue-cli 3.x 创建的项目中的 README.md 文件内容: # firstpage ## Project setup npm install ### Compiles and hot-reloads for development npm ru

Python 进程之间共享数据(全局变量)的方法

2019-07-16
进程之间共享数据(数值型): import multiprocessing def func(num): num.value=10.78 #子进程改变数值的值,主进程跟着改变 if __name__=="__main__": num=multiprocessing.Value("d",10.0) # d表示数值,主进程与子进程共享这个value.(主进程与子进程都是用的同一个value) print(num.value) p=multiprocessing.Proc

python实现连连看辅助之图像识别延伸

2019-07-16
python实现连连看辅助–图像识别延伸(百度AI),供大家参考,具体内容如下 百度AI平台提供图片相似检索API接口,并有详细的API文档说明,可以更好的实现图片识别. from aip import AipImageSearch """ 你的 APPID AK SK """ APP_ID = '***' API_KEY = '***' SECRET_KEY = '***' client = AipImageSearch(APP_ID, API

flutter RotationTransition实现旋转动画

2019-07-16
本文实例为大家分享了flutter RotationTransition实现旋转动画的具体代码,供大家参考,具体内容如下 flutter 动画状态监听器 AnimationController //动画控制器 AnimationController controller; //AnimationController是一个特殊的Animation对象,在屏幕刷新的每一帧,就会生成一个新的值, // 默认情况下,AnimationController在给定的时间段内会线性的生成从0.0到1.0的数字

flutter InkWell实现水波纹点击效果

2019-07-16
在flutter 开发中用InkWell或者GestureDetector将某个组件包起来,已添加点击事件. GestureDetector 使用点击无水波纹出现,InkWell可以实现水波纹效果. 正常情况下使用 : InkWell( //单击事件响应 onTap: () { }, child: Container( alignment: Alignment(0, 0), height: 28, width: 120, child: Text("InkWell单击事件"), ), )

解决Python正则表达式匹配反斜杠''\''问题

2019-07-16
在学习Python正则式的过程中,有一个问题一直困扰我,如何去匹配一个反斜杠(即"\")? 一.引入 在学习了Python特殊字符和原始字符串之后,我觉得答案应该是这样的: 1)普通字符串:'\\' 2)原始字符串:r'\' 但事实上在提取诸如"3\8"反斜杠之前的数字时,我屡次碰壁,始终得不到结果.最终发现自己理解错了,原来原始字符串和"正则转义"没有一点关系:下面详细谈一谈. 二.字符串转义 反斜杠,在Python中比较特殊,就是它可以用来构

Java使用反射创建对象示例

2019-07-16
本文实例讲述了Java使用反射创建对象.分享给大家供大家参考,具体如下: 一 实战 1 代码 import java.util.*; import java.io.*; public class ObjectPoolFactory { // 定义一个对象池,前面是对象名,后面是实际对象 private Map<String ,Object> objectPool = new HashMap<>(); // 定义一个创建对象的方法, // 该方法只要传入一个字符串类名,程序可以根据该

Python math库 ln(x)运算的实现及原理

2019-07-16
这个是很有用的一个运算,除了本身可以求自然对数,还是求指数函数需要用到的基础函数. 实现原理就是泰勒展开,最简单是在x=1处进行泰勒展开: 但该函数离1越远越难收敛,同时大于2时无法收敛,所以需要进行换元,然后重新展开: 但是该换元在接近0时或者接近无穷大时收敛困难,处在1到10范围内收敛快且精度高,所以对大于10或小于1的值进行分解如下: ln(55000)=ln(5.5)+4ln10 ln(0.0015)=ln(1.5)-4ln10 ln10为算好的值,可直接由ln_h1(10)得到 Eps

python对绑定事件的鼠标、按键的判断实例

2019-07-16
当多个事件绑定了同一个命令,那么在命令内部根据不同的事件进行处理的时候,怎么确定哪个事件发生了呢,用下面的来检测,经过测试处理tab键和alt键不能识别,其他单个都能被识别. 还有个事件的type属性,这个经过测试键盘事件返回字符2,鼠标返回字符2,可以根据这个再进行判断反会的是键盘事件还是鼠标事件. # <Button-1>:鼠标左击事件 # <Button-2>:鼠标中击事件 # <Button-3>:鼠标右击事件 # <Double-Button-1>

初试vue-cli使用HBuilderx打包app的坑

2019-07-15
微信授权登录提示code-2 appid和appsecret应该是移动应用,而非网页应用 微信授权登录提示code:-100/自定义基座无法微信登录和分享 开发者账号配置的应用签名应该是md5加密后的值,而不是原字符串 生产环境proxyTable不生效,导致接口500 两种解决办法: ①入口文件使用网络地址,且和接口在同一域名下 ②(推荐) 入口文件依旧是index.html 在config/prod.env和config/dev.env下添加API_ROOT 'use strict' mod

10分钟用python搭建一个超好用的CMDB系统

2019-07-15
CMDB 是什么,作为 IT 工程师的你想必已经听说过了,或者已经烂熟了,容我再介绍一下,以防有读者还不知道.CMDB 的全称是 Configuration Management Data Base,翻译下就是配置管理数据库,它存储与管理企业 IT 架构中设备的各种配置信息,它支撑服务流程的运转.发挥着配置信息的价值.在今天,无论是自动化运维.标准化运维.DevOps.甚至是时髦的智能运维,其实都离开不 CMDB,可以说 CMDB 是运维体系的基石,有了配置信息数据库,后面各种标准.流程都可以建

对django views中 request, response的常用操作详解

2019-07-15
request 获取post请求中的json数据 def hello(request): data = json.loads(request.body) ... json格式还有一些 非表单序列化 的格式,都可以从 request.body 中获取请求体中的数据,对于ajax请求可以使用 request.is_ajax() 来判断 根据请求的信息获取base url(有时候服务的域名比较多,还是需要动态的拼接一下url信息) # url http://wificdn.com:8888/wxpay

Unity使用LineRender断笔写字

2019-07-15
做多媒体项目时,经常会最后来个客户签名并保存之类的,签名保存之前的博客Unity3d截图方法合集有介绍过了,今天闲着把断笔写字的也贴出来吧,以前用leap motion时尝试用 leap motion演示中的食指写字,当时的写字其实只能一笔画,说白了其实就是个寿命无限长的拖尾,虽然效果不太好,但是很流畅,尝试过用leap motion断笔写字,但是效果不好,很容易误写,然后就产生了此方法,就是鼠标或者触摸屏写字了. 讲一下思路,就是不断的将鼠标的屏幕坐标转换成世界坐标,然后用LineRender