- 博客(39)
- 资源 (44)
- 问答 (6)
- 收藏
- 关注
原创 Python进阶(二十二)Python3使用PyMysql连接mysql数据库
由于python3.x完全不向前兼容,导致我们在python2.x中可以正常使用的库,到了python3就用不了。比如说mysqldb。目前MySQLdb并不支持python3.x,Python3.x连接MySQLoursql,PyMySQL,myconnpy等下面来说下python3如何安装和使用pymysql,另外两个方案我会在以后再讲。PEP 249 – Python Database API Specification v2.0文档。
2017-03-28 19:27:46 54762 3
原创 Fiddler(二) - 使用Fiddler做抓包分析
在前期博文中已经介绍了Fiddler的原理和软件界面。本文主要针对Fiddler的抓包抓取并处理HTTP请求。
2017-03-26 17:49:40 48699 1
原创 Fiddler(一) - Fiddler简介
Fiddler(一) - Fiddler简介为什么选择Fiddler作为抓包工具? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下:a.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改
2017-03-26 17:15:23 46785
原创 Python进阶(二十一)Python学习进阶资料
Python进阶(二十一)-Python学习进阶资料 学习Python已经将近2周了,掌握了基本的语法,并学习了简单的爬虫操作,现将相关学习资料整理如下。大部分资料均取材于慕课网,感觉一路学下来受益匪浅。1.Python入门2.Python进阶3.Python装饰器4.Python-面向对象5.Python-走进Requests库6.Python操作MySQL数据库7.Python遇见数据采集8.
2017-03-26 10:44:23 50185
原创 Python进阶(十九)Python3安装第三方爬虫库BeautifulSoup4
使用第三方库BeautifulSoup,用于从html或xml中提取数据 from bs4 import BeautifulSoup自己实践后,发现出现了错误,如下所示:以上错误提示是说没有发现名为“bs4”的模块。即“bs4”模块未安装。进入Python安装目录,以作者IDE为例,控制台提示第三方库BeautifulSoup4安装成功!回到之前的程序中,会发现IntelJ已经检测到第三方库BS4的安装,已自更新项目,此时项目恢复正常,无错误提示。
2017-03-25 14:36:06 56474 1
原创 Python进阶(十六)正则表达式
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。在python中使用正则表达式,需要引入re模块;下面介绍下该模块中的一些方法;
2017-03-19 10:58:19 45517 2
原创 Python进阶(十五)file文件操作
Python进阶(十五)-file文件操作 Python下文件操作与Java差不多。打开文件的模式有三种:r,只读模式(默认)。w,只写模式。【不可读;不存在则创建;存在则删除内容;因为会清空原有文件的内容,一定要慎用】a,追加模式。【可读; 不存在则创建;存在则只追加内容;】 注意最后要记得关闭文件:f.close() python只能将字符串写入到文本文件。要将数值数据存储
2017-03-19 09:25:13 44916
原创 Python进阶(十四)高阶函数
在慕课网完成了廖雪峰老师的《Python入门》与《Python进阶》两门基础课程。在此做一下简单的知识点小结。sorted函数接受一个列表lst和一个函数参数f,f为自定义的比较lst元素大小的函数,返回值为lst中元素按f函数排列的列表;
2017-03-19 08:33:03 45310 2
原创 Python进阶(十三)浅谈sorted 函数应用
key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。print(sorted([True,Flase]))===>结果[False,True]如果设置为True,列表元素将被倒序排列,默认为False。原理:先比较元组的第一个值,如果相等就比较元组的下一个值,以此类推。其中,key接受一个函数,这个函数只接受一个元素,默认为None。的排序会将 False 排在前,True排在后。解题思路:先按照正负排先后,再按照大小排先后。对实例进行排序时,会用到。
2017-03-18 17:28:11 45575
原创 Java进阶(五十五)-Java Lambda表达式入门
Java进阶(五十五)-Java Lambda表达式入门 原文链接: Start Using Java Lambda Expressions 下载示例程序 Examples.zip 。 简介 (译者注:虽然看着很先进,其实Lambda表达式的本质只是一个”语法糖”,由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。本人建议不要乱用,因为这就和某些很高级的黑
2017-03-18 09:09:49 45874 1
原创 Python进阶(十二)浅谈python中的方法
也就是说,p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数,p1.get_grade() 才是方法调用。直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,给一个实例动态添加方法并不常见,直接在class中定义要更直观。
2017-03-17 17:20:19 44667
原创 Python进阶(十一)实例定义方法
Python进阶(十一)-定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外部访问。那这些属性定义有什么用? 虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。 实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的。class Person(obj
2017-03-17 17:09:09 45329
原创 Python进阶(十)Python 编程规范
Python进阶(十)-Python 编程规范 在学习一门新的编程语言时,掌握其良好的编程规范可避免一些细节性错误的发生。去除一些不必要的学习障碍。分号 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 每行不超过80个字符 例外:1.长的导入模块语句2.注释里的URL 不要使用反斜杠连接行. Python会将圆括号, 中括号和花括号中的行隐式连接起来 ,
2017-03-17 15:30:12 46114 2
原创 Python进阶(九)Python陷阱:Nonetype
而在上面的程序中,虽然高阶函数calc_prod()有返回值ff,但是ff()却没有返回值,则传递到外层函数calc_prod()同样没有返回值,故输出了。针对这一问题,自己在IDEA中进行了调试,发现果然多输出了一行None。只有值可以改变,其他只读。之所以出现是因为定义了一个变量或函数,却没有值或者返回值,因此会默认值为。发现b的值确实为None,且其类型为NoneType。若代码改为如下所示,则可以完美实现列表的输出。它不支持任何运算也没有任何内建方法。对象具有三个特性:身份、类型、值。
2017-03-17 08:54:37 75480
原创 Python进阶(八)编写带参数decorator
拆开以后会发现,调用会失败,因为在3层嵌套的decorator定义中,最内层的wrapper引用了最外层的参数prefix,所以,把一个闭包拆成普通的函数调用会比较困难。不支持闭包的编程语言要实现同样的功能就需要更多的代码。如果有的函数非常重要,希望打印出’[INFO] call xxx()…‘,有的函数不太重要,希望打印出’[DEBUG] call xxx()…',这时,log函数本身就需要传入’发现对于被装饰的函数,log打印的语句是不能变的(除了函数名)。需要3层嵌套的decorator来实现。
2017-03-16 16:28:30 45226
原创 Python进阶(七)浅谈python3和Python2的区别
不管使用何种版本的Python语言,都需要遵循编程规范,不该有的缩进一定不能有。否则会出现莫名其妙的错误,如下图所示:在应用Python编程时,首先要明确所使用Python版本,因为版本2与3之间存在着很多细节性的差异。稍有不慎就会入坑~下面介绍一下具体应用中的细节性差异。具体参照。
2017-03-16 11:16:22 47498
原创 Python进阶(六)python编写无参数decorator
Python的decorator本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。使用decorator用Python提供的@语法,这样可以避免手动编写这样的代码。考察一个@log对于阶乘函数,@log结果:3628800结果:因为add()函数需要传入两个参数,但是@log写死了只含一个参数的返回函数。要让@log自适应任何参数定义的函数,可以利用Python的*args和**kw现在,对于任意函数,@log 都能正常工作。
2017-03-16 11:11:33 45095 2
原创 Python进阶(五)浅谈python匿名函数
高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2关键字lambda表示匿名函数,冒号前面的 x 表示函数参数。匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
2017-03-15 22:06:05 46207
原创 Python进阶(四)浅谈Python闭包
注意: 发现没法把 lazy_sum 移到 calc_sum 的外部,因为它引用了 calc_sum 的参数 lst。像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
2017-03-15 21:52:33 45859 2
原创 Python进阶(三)函数式编程之reduce()
官方解释如下:格式:reduce()函数即为化简函数,它的执行过程为:每一次迭代,都将上一次的迭代结果(注:第一次为init元素,如果没有指定init则为seq的第一个元素)与下一个元素一同传入二元func函数中去执行。在reduce()函数中,init是可选的,如果指定,则作为第一次迭代的第一个元素使用,如果没有指定,就取seq中的第一个元素。
2017-03-15 16:33:35 45560
原创 网站开发进阶(六十二)最强大的 CSS 布局——Grid 布局
Grid 布局相关的属性以及值众多,需要记忆的不少,建议可以跟 demo 一起结合起来,边敲代码边理解,再利用一些空闲时间记忆一下。笔者会在介绍每个属性的时候,做个小 demo 演示,建议大家可以自己修改看看效果加深记忆。Grid 布局属性可以分为两大类,一类是容器属性,一类是项目属性。我们先来看容器属性。可以指定网格项目所在的四个边框,分别定位在哪根网格线,从而指定项目的位置。属性:左边框所在的垂直网格线;属性:右边框所在的垂直网格线;属性:上边框所在的水平网格线;属性:下边框所在的水平网格线;
2017-03-15 13:51:46 95036 2
原创 Python进阶(二)初识Python数据元素:字典&时间
字典(dic dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典由键和对应的值组成。字典也被称作关联数组或哈希表。dict = {dict1 = {dict2 = {每个键与值必须用冒号隔开(😃,每对用逗号分割,整体放在花括号中{}。键必须独一无二,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
2017-03-14 16:40:55 48225
原创 Python进阶(一)初识Python数据元素:列表&元组
毕业论文已完成,下面就是等待盲审结果了。在此期间,已感觉论文无从看起。就学习一下Python吧,听说这是一门很神奇的语言。下面言归正传~点击查看IDE:IntelJ。有关IntelJ的安装与注册详见博文《IntelliJ IDEA 2016注册方法和注册码》。下面介绍一下Python中几种不熟悉的数据元素:列表、元组、字典、时间。
2017-03-14 16:19:21 48142 1
原创 网站开发进阶(七十):CSS 实现圆角有立体感的 DIV 边框
IntelliJ IDEA 2016&2017注册方法和注册码 题外话:看到IntelliJ的启动界面,不得不说画面做的太炫了! IntelliJ IDEA号称当前Java开发效率最高的IDE工具。IntelliJ IDEA有两个版本:社区版(Community)和旗舰版(Ultimate)。社区版时免费的、开源的,但功能较少,旗舰版提供了较多的功能,是收费的,可以试用30天。
2017-03-14 11:05:20 50111
原创 JVM进阶(十九)——Class文件常量池
JVM进阶(十九)——Class文件常量池 在上一博文《JVM进阶(十八)——初识Class文件》中,我们了解了Class文件的一些基础知识。他的整个内部结构就是一张很大的表,我们就是从这张表入手,一一分析每个部分的结构。继续看这张表: 接着上一博文所说,魔数后面分别是次版本号和主版本号。由上图可知其分别占用两个字节。 被蓝色框框住的就是次版本号,划红线的就是主版本号。再次说明
2017-03-13 16:20:55 46148 9
原创 JVM进阶(十八)——初识Class文件
JVM进阶(十八)——初识Class文件 关于类加载机制的相关知识在前面的博文中暂时先讲那么多。中间留下了很多问题,从本篇博文开始,我们来一一解决。 从我们最陌生而又最熟悉的.class文件开始说起。.class文件是一个由8位二进制构成一个字节的字节码文件,里面的格式都是按照规定好的顺序紧凑的排列在文件中。 在.class文件中,他的数据都是以无符号数和表的形式存储的,后面我们进行.
2017-03-13 15:54:10 44991 2
原创 JVM进阶(十七)——类加载阶段解析:准备-解析-初始化
JVM进阶(十七)——准备-解析-初始化 在类加载机制的五个阶段中,我们已经讲完了第一个阶段。剩下的四个阶段由于涉及到比较多的类文件相关的知识,现在讲了会看得很吃力,所以我们暂时不会一一的去细讲,只说一下大概的用处,让大家有个概念性的认识。 装载之后的阶段就是校验阶段了,该阶段的目的就是确保上一阶段读进来的二进制字节流中包含的信息符合虚拟机的规范,并且不会危害虚拟机自身。校验主要分为四个方向
2017-03-13 15:20:44 44857 1
原创 JVM进阶(十六)——JAVA 双亲委派模型
JVM进阶(十六)——JAVA 双亲委派模型 在上一篇博文中,我们知道了如何获得二进制的字节流,并根据获得的字节流去装载一个类。同时也了解到类加载器的存在,每个加载器对应着不同的加载目录,相互配合着,从而使整个加载过程稳定而安全。 那么他们是如何配合的呢?如果我自己写一个类,名字叫做String可以吗? 首先我们来看一张图: 图中除了最底下的那个加载器是我们没有讲到的,其余的
2017-03-13 15:01:48 45526 2
原创 JVM进阶(十五):JAVA 类加载器
JVM进阶(十五)——JAVA 类加载器 今天我们将类加载机制5个阶段中的第一个阶段,加载,又叫做装载。为了便于阅读,以下都叫做装载。 装载的第一步就是要获得二进制的字节流,它可以从读.class文件获得,也可以从网络中接收别人发送的字节流。反正只要符合虚拟机规定的字节流格式都可以进入这个阶段。 有了字节流之后,要进行装载还需要一个工具,那就是加载器了。加载器既可以使用系统提供的引导类
2017-03-13 14:45:37 44983 1
原创 JVM进阶(十四)——初识JAVA 类加载机制
JVM进阶(十四)——初识JAVA 类加载机制 从本篇博文开始,我们就进入虚拟机类加载机制的学习了。那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class(字节码)文件,再由虚拟机解释给当前的操作系统去执行。这些过程都是我们看不见的,我们能看见的也就是一个.class文件。既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.cl
2017-03-13 11:08:26 45176 1
原创 JVM进阶(十三):阶段学习回顾
JVM进阶(十三)——阶段回顾 各位小伙伴,到上一篇博文为止,我们的内存模型相关知识就已经讲完了!讲!完!了!不知道大家吸收了多少,这里我们简单的来回顾一下吧! 内存基本分为JAVA栈、本地方法栈、堆和方法区。 首先栈存放的是基本类型变量,局部变量,和对象的引用,他在内存中是一块连续的区域,有大小限制,是由系统自动分配的,因此它的读写速度比较快,而且会自动释放掉为该变量所分配的内存空间
2017-03-13 10:58:36 44759 4
原创 JVM进阶(十二):JAVA 可视化分析工具实战
JVM进阶(十二)——JAVA 可视化分析工具 经过前几篇博文对堆内存以及垃圾收集机制的学习,相信小伙伴们已经建立了一套比较完整的理论体系!本篇博客就根据已有的理论知识,通过可视化工具来实践一番。 我们今天要讲解的工具位于JDK目录的bin目录下,大家可以发现该目录下有很多可执行文件,这里都是JDK为我们提供用于分析内存的一些工具。我们重点看看jconsole.exe,JAVA监视与管理控制台。
2017-03-13 10:47:00 48613 4
原创 JVM进阶(十一):JAVA G1收集器
JVM进阶(十一)——JAVA G1收集器 在前两篇博文中讲解了新生代和年老代的收集器,在本篇博文中介绍一个收集范围涵盖整个堆的收集器——G1收集器。 先讲讲G1收集器的特点,他也是个多线程的收集器,能够充分利用多个CPU进行工作,收集方式也与CMS收集器类似,因此不会有太久的停顿。 虽然回收的范围是整个堆,但还是有分代回收的回收方式。在年轻代依然采用复制算法;年老代也同样采用“标记-清除
2017-03-13 10:34:40 46462 2
原创 JVM进阶(十):年老代收集器
JVM进阶(十)——JAVA 年老代收集器 在上一篇博文我们介绍了JAVA新生代收集器,本篇博文我们要讲的就是关于老年代的一些收集器。老年代存活的一般是大对象以及生命很顽强的对象,因此新生代的复制算法很明显不能适应该区域的特性,所以老年代采用的是“标记-清除-整理”算法(以前的博文有详细讨论过)。Serila Old收集器:该收集器是Serial收集器的老年代版,同样是一个单线程的收集器,优劣势
2017-03-13 10:16:27 44704 2
原创 JVM进阶(九):年轻代收集器
JAVA 年轻代收集器 继续上一篇博文所讲的,STW即GC时候的停顿时间,他会暂停我们程序中的所有线程。如果STW所用的时间长而且次数多的话,那么我们整个系统稳定性以及可用性将大大降低。 因此我们在必要的时候需要对虚拟机进行调优,调优的主要目标之一就是降低STW的时间,也就是减少Full GC的次数。那么这里我们从调优的角度来分析各个收集器的优势与不足。 首先从作用于年轻代的收集器开始
2017-03-13 10:03:26 45701 2
原创 Vue进阶(幺柒幺):前端用户体验提升(五)Flex实现弹性布局
Flex是的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。注意:任何一个容器都可以指定为Flex布局。.box{行内元素也可以使用Flex布局。.box{Webkit内核的浏览器,必须加上-webkit前缀。.box{注意,设为Flex布局以后,子元素的floatclear和属性将失效。
2017-03-01 08:40:01 96807 1
Vue下textarea文本框根据内容自适应改变高度
2020-10-20
BackToTop.zip
2019-11-05
dubbo-admin-2.5.4 Web管理平台.zip
2018-04-29
dubbo-monitor-simple-2.5.3.zip
2018-04-29
w3c标准html5手册
2017-08-28
Chart.js实现饼状图添加文字
2017-08-28
Icon制作神奇-Greenfish Icon Editor3.31官方中文版
2017-04-25
iOS集成听云uni-app插件JS资源文件
2022-10-12
基调听云App移动应用性能管理产品采用SDK方式实现对App的**崩溃、卡顿、超时**等性能问题进行采集,并能对真实用户体验数据
2022-10-11
react-native实现ios横屏全屏展示
2024-03-13
react-native实现ios横屏全屏展示
2024-03-05
谁是第3w [face]monkey2:012.png[/face]
2021-03-24
学无止境[face]monkey2:005.png[/face]
2021-03-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人