Flask 学习笔记(二)-调试模式  

flask在使用命令启动之后 FLASK_APP=index.py flask run 如果新增了路由,又需要重启,这导致了开发的时候非常麻烦,Flask默认情况下环境是 * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off 在开发模式下,新增路

Posted:2018-06-10  By vilay

Flask 学习笔记(-)  

1.安装flask 使用pip安装flask pip3 install -U Flask 2.第一个flask程序 新建flask的目录 mkdir -p www/flask 新建一个python文件(index.py),放在flask目录下 from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'hello vilay' 3.执行 进入项目目录 FLASK_APP=index.py f

Posted:2018-06-09  By vilay

PHP 实用函数篇  

error_get_last()- 获取最后发生的错误 示例: <?php echo $a; print_r(error_get_last()); 结果: Array ( [type] => 8 [message] => Undefined variable: a [file] => C:\WWW\index.php [line] => 2 ) register_shutdown_function() - 注册一个会在php中止时执行的函数 注册一个方法,当一个请求

Posted:2018-06-06  By vilay

一个有意思的PHP函数-levenshtein  

发现一个有意思的PHP函数 levenshtein(),计算两个字符串之间的编辑距离。 官网链接levenshtein 官网描述: 编辑距离,是指两个字串之间,通过替换、插入、删除等操作将字符串str1转换成str2所需要操作的最少字符数量。 该算法的复杂度是 O(m*n),其中 n 和 m 分别是str1 和str2的长度 (当和算法复杂度为O(max(n,m)**3)的similar_text()相比时,此函数还是相当不错的,尽管仍然很耗时。)。 语法: int levenshtein (

Posted:2018-06-03  By vilay

Restful 风格可能存在的几个安全问题  

随着restful的流行,现在微服务以及很多api相关应用都采用这种架构风格进行设计。 好处显而易见,但是还是要注意其伴随的安全问题 1.遗漏了对资源从属关系的检查 例如:/users/10 有没有验证当前登陆的是否是id为10的用户?如果填的是其它id是否能够获得数据? 当包含多个资源的时候,例如:/users/10/orders/10 是否对用户以及订单都进行过验证? 2. HTTP响应中缺失必要的 Security Headers X-Frame-Options 为了防止应用遭受点击劫持攻

Posted:2018-06-03  By vilay

PHP Reload  

在修改了php的配置之后,需要重启才能够生效。之前我大部分都是直接restart进行重启操作。 重启有一个坑,就是必须保证当前应用没有用户或者业务在跑,否则进程会销毁终止。 除了restart之外还有一个reload的操作,一般来说reload相对于restart肯定是更能够达到平滑重启的要求的,但是也还是存在一些问题。 php-fpm.conf的文件中有一个参数:process_control_timeout 默认情况下是注释的。 ; Time limit for child processe

Posted:2018-06-03  By vilay

生成csv的时候全角的字符串不能导出的解决方法  

用户在输入数据的时候,不懂什么原因,数据是全角的,但是数据库保存没有任何问题,在数据导出到csv的时候就缺失了。 最开始的方案 //略 $tel = iconv($mobile,'utf-8','gb2312'); //略 这种方式全角数据会丢失。 改良方案,使用函数mb_convert_encoding() //略 $tel = mb_convert_encoding($mobile,'gb2312','utf-8'); //略 这样生成的数据在前后带了个?,再次修改 //略 $tel = m

Posted:2018-05-31  By vilay

PHP 生成唯一ID  

开发的时候经常需要生成唯一的标识,例如订单号,用户标识等。 记录下几种生成的方法: 1. PHP 自带的函数 uniqid() echo uniqid(); echo uniqid('php_'); 此函数不保证返回值的唯一性。 由于绝大多数系统使用 NTP 或者类似服务调整系统的时间,所以系统时间经常发生变化。 此外,进程/线程可能不会返回唯一的 ID。 用 more_entropy 来增加唯一性的概率。 2. 多带点客户端信息 echo md5($_SERVER['HTTP_USER_AGE

Posted:2018-05-27  By vilay

javascript history.go(-1) 和history.back(-1)的区别  

history.go(-1):只返回,不刷新 history.back(-1):返回并且刷新

Posted:2018-05-02  By vilay

开启php-fpm 的 slow log 日志  

开启php-fpm的慢日子 修改配置文件: vi /etc/php-fpm.d/www.conf 修改配置 request_slowlog_timeout = 5s # 超出5s的记录下来 slowlog = /var/logs/php-slow.log # 记录文件的地址

Posted:2018-04-22  By vilay

Larave ajax 提交csrf 验证  

在Laravel 5.5 下使用ajax提交表单的时候,一只无法提交。 我在form下有添加csrf验证,提交的时候也有csrf的token数据,但是就是无法提交. 查看请求信息,一直报错 419 unknown status 解决方法: 第一,添加meta 标签 <meta name="csrf-token" content="{{ csrf_token() }}"> 第二,设置ajax 请求头 $.ajaxSetup({ headers:

Posted:2018-01-28  By vilay

图片区域定位添加a链接  

在图片的局部添加a标签链接 <img src="./images/new.gif" data-rel="./background.jpg" style="width:100%;padding: 0px;vertical-align:top;margin: 0px auto;display:block;border: none;" alt="" usemap="#planetmap"/>

Posted:2018-01-24  By vilay

php_network_getaddresses: getaddrinfo failed  

在一台服务器搭好环境之后出现了个问题 我通过函数getimagesize()获取图片的大小的时候,无法获取,报了一个错误。 php_network_getaddresses: getaddrinfo failed: Name or servicenot known 参考了下网上的资料,都是说服务器dns有问题,我修改了dns重启服务器。 vi /etc/resolv.conf配置如下 nameserver 10.143.22.116 nameserver 10.143.22.118 重启了服务器

Posted:2018-01-24  By vilay

Content Security Policy 学习  

Content Security Policy 一看名称就知道是安全策略,简称CSP.为了防止跨站脚本攻击。主要是定义网页可以加载对资源对范围,比如限制只能使用本站下对资源,这样就一定程度上达到目的了。 使用 在web应用内使用,有两种途径 在meta标签内引入 <meta http-equiv="Content-Security-Policy" content="script-src 'self';style-src 'self';"> 配置

Posted:2018-01-17  By vilay

网页使用 embed 标签引入优酷视频  

网页中使用embed引入优酷视频 <embed src='http://player.youku.com/player.php/sid/XMjQ4MDg2MTc2MA==/v.swf' allowFullScreen='true' quality='high' width='480' height='400' align='middle' allowScriptAccess='always' type='application/x-shockwave-flash'></embe

Posted:2018-01-16  By vilay