自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

路虽远,行则必至!

积跬步,至千里

  • 博客(355)
  • 资源 (3)
  • 收藏
  • 关注

原创 深入浅出Python——Python高级语法之异常、模块、包

前言:本博文主要讲解Python异常、模块、包,属于Python高级语法。基础语法见:深入浅出Python——Python基础语法全解,更多内容请访问博主的主页,谢谢!文章目录一、了解异常二、异常的写法1. 语法2. 快速体验3. 捕获指定异常3.1 语法3.2 体验3.3 捕获多个指定异常3.4 捕获异常描述信息3.5 捕获所有异常4. 异常的else5. 异常的finally三、异常的传递四、自定义异常五、模块1. 导入模块1.1 导入模块的方式1.2 导入方式详解1.2.1 import1.2.2

2020-08-02 21:58:05 1477 3

原创 深入浅出Python——Python高级语法之面向对象

前言:本博文主要讲解Python文件操作的写法,属于Python高级语法。基础语法见:深入浅出Python——Python基础语法全解,更多内容请访问博主的主页,谢谢!文章目录一、理解面向对象二、类和对象1. 理解类和对象1.1 类1.2 对象2. 面向对象实现方法2.1 定义类2.2 定义类2.3 self三、添加和获取对象属性1. 类外面添加对象属性2. 类外面获取对象属性3. 类里面获取对象属性四、魔法方法1. `__init__()`1.1 体验`__init__()`1.2 带参数的`__ini

2020-08-02 19:26:34 1998 2

原创 深入浅出Python——Python高级语法之文件操作

前言:本博文主要讲解Python文件操作的写法,属于Python高级语法。基础语法见:深入浅出Python——Python基础语法全解,更多内容请访问博主的主页,谢谢!文章目录一、文件操作的作用二、文件的基本操作1. 文件操作步骤1.1 打开1.1.1 打开文件模式1.1.2 快速体验2.1 文件对象方法1.2.1 写1.2.2 读1.2.3 seek()3.1 关闭三、文件备份1. 步骤2. 代码实现3. 思考四、文件和文件夹的操作1. 文件重命名2. 删除文件3. 创建文件夹4. 删除文件夹5. 获

2020-07-30 21:17:48 2557 4

原创 深入浅出Python——Python高级语法之函数

前言:一、函数的作用函数就是将一段具有独立功能的代码块 整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求。函数在开发过程中,可以更高效的实现代码重用。二、函数的使用步骤1. 定义函数def 函数名(参数): 代码1 代码2 ......2. 调用函数函数名(参数)注意:不同的需求,参数可有可无。在Python中,函数必须先定义后使用。...

2020-07-27 17:14:51 6719 22

原创 深入浅出Python——Python基础语法全解

前言:Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。文章目录一、Python简介1. 了解Python2. Python介绍3. Python特点4. Python发展历史5. Python版本二、Python解释器1. 解释器的作用2. 解释器的安装三、PyCharm安装与使用1. PyCharm的作用2. PyCharm安装与使用四、注释1. 注释的作用2. 注释的分类及语法五、变量1. 变量的作用2. 定义变量2.1 标识符2.2 命名习惯2.3 使用变量2.4 认识

2020-07-24 20:31:37 58155 77

原创 解决el-input-number只能输入整数

只需要添加属性 precision 即可。

2022-11-16 11:59:25 110

原创 实现Echarts随着浏览器屏幕自适应缩放

如果echarts不做大小自适应的话,屏幕放大缩小是不会让实例自适应的,此时我们可以根据浏览器自带的监听屏幕事件window.addEventListener(‘resize’,function(){})这个方法,结合echarts官网中的chart.resize()方法。其原理是浏览器监听屏幕大小变化,执行echarts中的chart.resize()方法。只要屏幕尺寸发生改变,echarts实例会紧跟着同比例放大缩小。

2022-11-15 15:45:07 146

原创 uni-app配置代理

uni-app配置代理

2022-11-10 08:27:04 221

原创 Vue路由懒加载

1、vue异步组件实现路由懒加载component:resolve =>([ '需要加载的路由的地址' ,resolve ])2、es提出的import(推荐使用这种方式)const HelloWorld = () => import('需要加载的模块地址')一、为什么要使用路由懒加载为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题。二、定义懒加载简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载。三、使用。

2022-10-30 17:13:07 166

原创 Vue文字大小自适应

calc:是一个css自带的计算方法,可以自动计算后返回px单位的值。100vw:vw是屏幕的宽度。也就是百分百屏幕宽度。*24:这里乘的24代表24px。1920:设计稿的宽度。

2022-10-30 14:36:30 31

原创 前后端数据传递之form-data

前后端接口数据联调有一种form-data形式,一般用来做文件上传,但是有时在登录的时候,也会用到这种格式传递数据,此时就需要通过借助FormData对象实现。

2022-10-27 20:41:58 658

原创 Vue中的@blur和@focus事件

blur 是当元素失去焦点时所触发的事件,@focus是元素获取焦点时所触发的事件。

2022-10-27 11:30:42 360

原创 vue使用Dayjs计算常用日期

推荐一个轻量的处理时间和日期的 JavaScript 库:dayjs

2022-10-25 17:52:50 624

原创 vue内置组件component

component是vue的一个内置组件,作用是:配合is动态渲染组件。通常在tab页切换,多操作页面等中使用。当相互切换时,其中的一个组件被销毁。所以,当两个组件进行状态切换时,组件的状态是:不断的创建与销毁的过程。如果要把组件缓存下来,可以在动态组件上使用vue另一个内置组件keep-alive。接下来,我们研究一下组件的执行顺序,分别在父子组件中添加mounted函数。如果对两个组件分别添加beforeDestroy生命周期函数。

2022-10-25 17:28:26 187

原创 解决ECharts中使用tooltip时鼠标移入抖动问题

当鼠标移入Echarts的时候页面可能会出现抖动的情况,据查阅资料得知:出现这种情况是因为echarts所在容器的外部一定存在设置了类似overflow:auto这种滚动条,而tooltip中有这么个属性transitionDuration,默认为0.4秒,当我们鼠标移入的时候,因为有0.4秒的延迟,本身tooltip就占有一定的宽高,所以在这0.4秒的时间dom超出容器导致滚动条的产生,0.4秒过后又恢复,就出现了抖动的异常现象。

2022-10-20 14:18:19 461

原创 JavaScript中let的用法

前言:在 ES6 之后,js 声明变量不仅限于使用var关键字,下来让我们看一下另两种方式。文章目录一、let命令二、一、let命令ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。{ let a = 10; var b = 1;}a // ReferenceError: a is not defined.b // 1上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声

2022-03-01 22:15:58 3682

原创 面向对象概述

一、面向对象概述面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成C++,而由C++产生了Java这门面向对象的编程语言。但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并

2022-03-01 22:11:46 132

原创 浅谈Vue中的v-bind指令

1、什么是v-bind指令在企业开发中如果想要给“元素”绑定数据,我们可以使用{{}},v-text,v-html,但是如果想给“元素的属性”绑定数据,就必须使用v-bind,所以v-bind的作用是专门用于给“元素的属性”绑定数据。2、v-bind格式v-bind:属性名称 = “绑定的数据”:属性名称 = “绑定的数据”3、v-bind特点赋值的数据可以是任意一个合法的JS表达式,例如::属性名称 = “age+1”4、举例<!DOCTYPE html><html

2022-03-01 22:08:14 834

原创 vue常用指令

<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> [v-cloak]{ display: none; } </style><!-- 导入vue文件--> <script src="./js/vue.js" typ

2022-03-01 19:33:22 284

原创 浅谈MVVM模式和MVC模式

MVVM模式Model:负责数据存储View:负责页面展示View Model:负责业务逻辑处理(例如Ajax请求等),对数据进行加工后交给视图展示MVC模式(设计模式,前后端都有模式存在)Model(模型)=> 数据(js变量)View(视图)=> 用户所见界面(HTML、CSS)Control(控制器)=> 如何根据视图与用户交互后改变数据(通过DOM对象绑定事件,将变量进行修改)...

2022-03-01 19:13:23 105

原创 使用Python的requests库爬取网页表情包

一、目标网站喜羊羊QQ表情,可爱的懒羊羊搞笑图片二、开发思路安装项目所需环境导入所需的类库定义一个函数用来获取图片a. 获取网络源代码b. 获取源代码中所有的图片c. 筛选出目标图片调用获取图片的函数(获取成功)定义一个函数,用来下载图片a. 指定图片的URL,获取到图片的资源b. 指定目录,下载图片到本地重命名下载到本地的图片项目结束项目源码# 1. 导入第三方的一个http的请求库# pip install requests# 导入Python的第三方库imp

2021-09-12 22:31:20 478

原创 Vue模板语法

一、Vue模板语法Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。二、插值1. 文本数据绑定最常见的形式就是使用{{...}}的文本插值:<div id="app"> <p>{{ message }}<

2021-06-17 21:18:13 296

原创 初识Vue框架

文章目录一、Vue是什么二、Vue的安装1. 独立版本2. 使用CDN方法三、Vue起步一、Vue是什么Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。Vue 只关注视图层, 采用自底向上增量开发的设计。Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。二、Vue的安装1. 独立版本在 Vue.js 的官网上直接下载 vue.min.js 并用 <script> 标签引入。2. 使用CDN方法

2021-02-24 14:52:45 428 1

原创 JavaScript中的模板字符串

前言:模板字面量 是允许嵌入表达式的字符串字面量。你可以使用多行字符串和字符串插值功能。它们在ES2015规范的先前版本中被称为“模板字符串”。文章目录一、语法二、描述三、多行字符串四、插入表达式一、语法`string text``string text line 1 string text line 2``string text ${expression} string text`tag `string text ${expression} string text`二、描述模板字

2020-11-12 17:14:53 755

原创 最新的ECMAScript标准定义了8种数据类型,你知道吗?

前言:在前面的博文中,我们提到了JavaScript的五大基本数据类型详细讲解、JavaScript 六大数据类型图示详解 [重点]。但是随着ECMAScript标准的更新,又产生了新的数据类型,让我们一起来看一下吧。最新的 ECMAScript 标准定义了8种数据类型:1. 七种基本数据类型布尔值(Boolean),有2个值分别是:true 和 false。null , 一个表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 null 与 Null、NULL或变体完全不

2020-11-10 15:57:25 682

原创 console.log()和console.dir()的区别

前言:本博文主要讲解console.log()和console.dir()的区别。更多关于console的详细方法请查看: https://segmentfault.com/a/1190000004528137文章目录一、案例二、运行效果图三、总结一、案例<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" cont

2020-11-10 11:55:34 2567

原创 浅谈CSS中的Position(定位)

文章目录一、position的属性值二、static 定位三、fixed 定位四、relative 定位五、absolute 定位六、sticky 定位七、重叠的元素一、position的属性值position属性指定了元素的定位类型。属性值:staticrelativefixedabsolutesticky元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。二、static 定位HT

2020-11-06 11:27:23 537

原创 浅谈nth-child和nth-of-type的区别

前言:本文主要讲解CSS3中nth-child和nth-of-type的区别。文章目录一、概念二、举例三、结论一、概念p:nth-child(1)p:nth-of-type(1)第一个表示选取:第1个子元素,并且是<p>。【顺序优先】第二个表示选取:先找到子元素中的<p>们,然后从中选取第1个。【标签优先】二、举例<!DOCTYPE html><html lang="en"><head> <meta cha

2020-11-06 11:07:56 463

原创 Python udp聊天器(多任务版)

一、案例示例二、案例说明编写一个有2个线程的程序。线程1用来接收数据然后显示。线程2用来检测键盘数据然后通过udp发送数据。三、参考代码import socketimport threadingdef send_msg(udp_socket): """获取键盘数据,并将其发送给对方""" while True: # 1. 从键盘输入数据 msg = input("\n请输入要发送的数据:") # 2. 输入对方的ip地

2020-09-26 23:43:04 480 1

原创 Python网络编程之socket

一、不同电脑上的进程之间如何通信首要解决的问题是如何唯一标识一个进程,否则通信无从谈起。那么在1台电脑上可以通过进程号(PID)来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用进程(进程)。这样利用IP地址,协议,端口就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互。注意:所谓进程指的是:运行的程序以及运行时用到的资源这个整体称之

2020-09-26 23:42:18 570

原创 Python并发下载器【原理+实例】

一、并发下载原理from gevent import monkeyimport geventimport urllib.request# 有耗时操作时需要monkey.patch_all()def my_downLoad(url): print('GET: %s' % url) resp = urllib.request.urlopen(url) data = resp.read() print('%d bytes received from %s.' %

2020-09-26 23:39:16 494

原创 Python文件夹copy器(多进程版)

import multiprocessingimport osimport timeimport randomdef copy_file(queue, file_name, source_folder_name, dest_folder_name): """copy文件到指定的路径""" f_read = open(source_folder_name + "/" + file_name, "rb") f_write = open(dest_folder_name + "

2020-09-26 23:37:45 378

原创 Python网络编程之udp

文章目录一、什么是网络二、使用网络的目的三、什么是ip地址一、什么是网络网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系。网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。网络是人类发展史来最重要的发明,提高了科技和人类社会的发展。网络就是一种辅助双方或者多方能够连接在一起的工具。二、使用网络的目的为了联通多方进行通信用的,即把数据从一方传递给另外一方。之前的编程都是单机的,即不能和其他电脑上的程序进行通信。为了让在不

2020-08-19 09:54:37 798 1

原创 Python并发编程之进程、线程、协程对比

友情链接:文章目录一、举例二、总结一、举例有一个老板想要开个工厂进行生产某件商品(例如剪子)。他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的为了能够生产剪子而准备的资源称之为:进程。只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程。这个老板为了提高生产率,想到3种办法:在这条生产线上多招些工人,一起来做剪子,这样效率是成倍増长,即单进程 多线程方式。老板发现这条生产线上的工

2020-08-17 16:32:02 969

原创 Python并发编程之协程(greenlet、gevent)

文章目录一、greenlet1.1 安装方式1.2 greenlet的使用二、gevent2.1 安装方式2.2 gevent的使用2.3 gevent切换执行2.4 给程序打补丁一、greenlet为了更好使用协程来完成多任务,Python中的greenlet模块对其封装,从而使得切换任务变的更加简单。1.1 安装方式使用如下命令安装greenlet模块:sudo pip3 install greenlet1.2 greenlet的使用from greenlet import greenl

2020-08-17 16:27:40 476 2

原创 Python并发编程之协程【必知必会】

前言:前面我们已经讲解过了进程和线程,本博文将讲解实现多任务的另一种方式——多协程。文章目录一、协程概念二、协程和线程差异三、简单实现协程一、协程概念协程,又称微线程,纤程。英文名Coroutine。协程是Python中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机,我们可以把一个协程切换到另一个协程。只要这个过程中保存或恢复CPU上下文那么程序还是可以运行的。通俗的理解:在一个线程中的某个函数,

2020-08-17 16:24:31 424

原创 Python中生成器详解

前言:在前面的博文里,已经介绍了生成器:Python迭代器与生成器总结【建议收藏】,本博文将系统介绍Python中的生成器。文章目录一、生成器简介二、使用()创建生成器三、使用yield创建生成器四、使用send唤醒一、生成器简介利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法,即

2020-08-17 16:23:20 403

原创 Python中迭代器详解

前言:在前面的博文里,已经介绍了迭代器:Python迭代器与生成器总结【建议收藏】,本博文将系统介绍Python中的迭代器。文章目录一、迭代器简介二、可迭代对象三、判断一个对象是否可以迭代四、可迭代对象的本质五、iter()函数与next()函数六、判断一个对象是否是迭代器七、迭代器Iterator八、for...in...循环的本质一、迭代器简介迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退

2020-08-17 16:21:26 880

原创 Python进程、线程对比【建议收藏】

一、功能进程:能够完成多任务,比如在一台电脑上能够同时运行多个QQ。线程:能够完成多任务,比如一个QQ中的多个聊天窗口。二、定义的不同进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。三、区别一个程序至少有一个进程,一个进程至少有一个线程。线程的

2020-08-16 18:10:19 385

原创 Python并发编程之线程(死锁)

前言:本博文主要讲解Python并发编程中线程的死锁。死锁就是使用互斥锁不当而产生的后果,那么我们应该如何避免、解决呢?请看下文!文章目录一、死锁二、避免死锁三、银行家算法介绍3.1 背景知识3.2 问题描述3.3 案例总结一、死锁在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。尽管死锁很少发生,但一旦发生就会造成应用的停止响应。下面看一个死锁的例子:import threadingimport timeclass MyThread1(thr

2020-08-16 18:07:38 379 2

SQL语句中Group BY 和Rollup以及cube用法.txt

SQL Server中的用法为group by colomn with [rollup|cube],首先要弄明白rollup 和cube,就要知道group by的用法,group by 为对列进行分组,只展现分组统计的值,而 rollup 为分层次展现,cube 为展现列中所有层次。

2020-05-24

07-ajax.pdf

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。此文档是关于Ajax相关的知识,深入浅出的讲解了Ajax的应用以及写法,对于刚入门的新手有很大的帮助。同时,文档里也讲解了跨域请求以及jsonp的相关知识,值得一看。

2019-08-22

WEB前端面试选择题解答(共36题).pdf

此文档讲解了WEB前端经典的36道选择题,文档中会有详细的描述与讲解,对于自我能力的进阶和前端知识的巩固,都有很重大的意义和价值。

2019-08-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除