自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 理解Nodejs的事件驱动

Node.js现在非常活跃,相关生态社区已经超过Lua(基本上比较知名的功能都有nodejs模块实现)。但是我们为何要使用Node.Js?相比传统的webserver服务模式,nodejs有什么优点优势?Node.Js是基于javascript语言,建构在google V8 engine以及Linux上的一个非阻塞事件驱动IO框架。nodejs是单进程单线程,但是基于V8的强大驱动力,以及事件驱动模型,nodejs的性能非常高,而且想达到多核或者多进程也不是很难(现在已经有大量的第三方m

2021-07-17 15:50:50 457

原创 简单的面试题汇总

1.带参数的装饰器https://blog.csdn.net/e15273/article/details/786174982.单例模式https://www.cnblogs.com/huchong/p/8244279.html

2021-06-27 11:09:52 141

原创 encodeURIComponent和encodeURI函数的区别

语法encodeURIComponent(URIstring)参数 描述 URIstring 必需。一个字符串,含有 URI 组件或其他要编码的文本。 返回值URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。说明该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个

2021-06-23 21:48:10 345

原创 URL和URI的区别与联系

统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来。拿人做例子,假设这个世界上所有人的名字都不能重复,那么名字就是URI的一个实例,通过名字这个字符串就可以标识出唯一的一个人。现实当中名字当然是会重复的,所以身份证号才是URI,通过身份证号能让我们能且仅能确定一个人。那统一资源定位符URL是什么呢。也拿人做例子然后跟HTTP的URL做类比,就可以有:动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人可以看到,这个字符串同样标识出了唯

2021-06-23 21:34:14 211

原创 nodejs中异步的四种同步写法

为什么要写成同步nodejs是单线程的,为了避免阻塞,在进行io操作的时候为了就采用异步执行的方式.但是很多时候异步执行会带来很多麻烦,比如我们读文件,拿到文件数据再进行操作,这个时候如果异步那么就会打不到想要的效果那么就有了把异步改成同步的方法,在js的发展历程中一共出现了四种异步改成同步的方式方式一:回调函数const fs = require("fs")//第一阶段,回调函数function readFile(cb){ fs.readFile('./package.json',..

2021-06-16 20:46:11 1659

原创 深入理解Promise、async和await

1. 为什么要Promise?在JavaScript中,难免会遇到异步访问的场景,比如打开文件,访问数据库等等。如果不做好异步控制,会导致意外结果(比如 返回值还没返回就想调用)因此,一种典型的做法是:图片A来自阮一峰微博当时,大家把这种情形称之为回调地狱。基于当时的困境,有人提出了Promise,从英文看得出,这是一个承诺,承诺我将来会干什么(其实干的事情就是回调)。如何表征这个回调?在promise后面跟上then表示要回调的函数即可实现即:图片B来自阮一峰微博一个p

2021-06-16 20:40:42 310 1

原创 你说为什么有了 Promise 和 then,为什么还要使用 async?

最近代码写着写着,我突然意识到一个问题——我们既然已经有了 Promise 和 then,为啥还需要 async 和 await?这不是脱裤子放屁吗?比如说我们需要一段请求服务器的代码:new Promise((resolve, reject) => { setTimeout(() => { const res = '明月几时有' if (1 > 2) { resolve(res) } else { reject('我不知道

2021-06-16 20:38:44 192

原创 async和await的详细介绍

// async函数的返回值是一个promise对象// async function fn1() {// // return 1;// // throw 2;// // return Promise.reject(3);// return Promise.resolve(3);// }// // const rel = fn1(); //Promise { 1 }// fn1().then(// (value) => {// console.lo...

2021-06-15 17:03:30 139

原创 对异步回调、promise、async/await的理解

promise的用法Promise,简单来说就是一个容器,里面保存着某个未来才会结束的时间(通常是一个异步操作的结果)Promise构造函数接收一个函数作为参数,该函数的两个参数是resolve,reject,它们由JavaScript引擎提供。其中resolve函数的作用是当Promise对象转移到成功,调用resolve并将操作结果作为其参数传递出去;reject函数的作用是单Promise对象的状态变为失败时,将操作报出的错误作为其参数传递出去。 let p = new Promi.

2021-06-15 12:36:32 202

原创 关于JS中的constructor与prototype

https://blog.csdn.net/smave88/article/details/9035923?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242

2021-06-14 22:58:31 119

原创 Go语言学习-marshal unmarshal

1.定义marshal:输入数据,转化为[]byte入参:我们输入的数据,类型为任意类型出参:返回数据为结果和错误结果为[]byte []uint8类型全部都是数字,使用os.Stdout.Write(b)将ascii转化为字符unmarshal:将[]byte转化为任意我们规定的类型入参:第一个参数是我们输入的数据,类型是[]byteuint8类型的切片;第二个参数是接受器可以为任何类型数据,自定义出参:错误目的:便于存储传递2.marshalpack...

2021-05-31 21:34:31 771

原创 go语言学习-go语言中的方法

方法首先强调一下:go中任何自定义类型都可以有方法,不仅仅是struct注意除了:指针和interface通过下面简单例子理解:package mainimport ( "fmt")//这里是我们普通定义的一个函数addfunc add(a,b int) int { return a+b}type Int int//这里是对Int这个自定义类型定义了一个方法addfunc (i Int) add(a,b int) int{ return

2021-05-29 21:10:39 256

原创 Go语言学习-接口

Go语言中虽然没有传统面向对象语言中类、集成的概念,不过提供了接口的支持,可以使用接口来使用一些面向对象的特性。在 go 语言中,的接口有下面几个特点:可以包含0个或多个方法的签名 只定义方法的签名,不包含实现 实现接口不需要显式的声明,只需实现相应方法即可接口的定义定义方式如下:type Namer interface { method1(param_list) return_list method2(param_list) return_list ...

2021-05-29 21:00:14 94

原创 1.游戏开发之协议的定义过程

2021-05-29 13:23:01 130

原创 常见的三种负载均衡SLB

随着现在互联网的流量越来越大,稍微好一点的系统,访问量就非常大了,并且系统功能也越来越复杂,那么单台服务器就算将性能优化得再好,也不能支撑这么大用户量的访问压力了,这个时候就需要使用多台机器,设计高性能的集群来应对。那么,多台服务器是如何去均衡流量、如何组成高性能的集群的呢?此时就需要请出 「负载均衡器」 入场了。负载均衡(Load Balancer)是指把用户访问的流量,通过「负载均衡器」,根据某种转发的策略,均匀的分发到后端多台服务器上,后端的服务器可以独立的响应和处理请求,从而实现分散负载

2020-11-11 09:28:07 1594

原创 Ansible 2.8.7 API 使用异常1:“connection plugin class ansible.utils.sentinel.Sentinel was not found“

系统环境 ------ - CENTOS7.6-1810 - virtualenv - python 3.8.0 - ansible 2.8.7 - eclipse 201909 + PyDEV 7.4 以前自定义options: from collections import namedtuple from optparse import Values options = {'ver...

2020-10-07 00:13:50 703

原创 让你的yum加速起来

很多时候,linux从yum上安装源总是无比的慢,没办法,因为都是国外的。这里讲一个配置国内 yum (网易163)源的简单方式。先拉取wget(如果已经安装,则跳过,可通过wget --help判断是否已安装wget)yum -y install wget所处位置为根目录/,拉取国内yum的repo文件保存在根目录下wget http://mirrors.163.com/.help/CentOS7-Base-163.repo将现有yum的repo备份起来(如果不想备份可以不..

2020-10-06 16:18:55 294

原创 PyCharm搭建Ansible开发环境

第一步,配置sftpFile 》Settings 》 deployment选择添加SFTP先将Connection配置好,主要配置host、port以及认证方式,我选择使用密码接下来设置路径映射,将win10上的路径映射到linux主机添加好后,点击apply即可2.设置自动上载若是本地没有代码,先将远程端的代码同步过来选择download;要是想把本地代码同步上去选择upload。Tools 》 Deployment同步好之后,为了避免每次更改都要上传,

2020-10-06 16:07:01 578

原创 windows下使用pycharm开发基于ansible api的python程序

在windows下使用pycharm开发基于ansible api的python程序时,发现ansible的包无法import。本机安装的是3.7.0的python,cmd下使用pip安装ansible一直安装失败。pycharm中使用File | Settings | Project: runTasks | Project Interpreter也无法导入ansible的包。后来终于找到解决方法。1.下载ansible压缩包:https://files.pythonhosted.org/package

2020-10-06 15:25:52 344

原创 Linux没有ens33(eth0)解决方案

一、前言运行环境:window10+VMware14+Centos7博主最近遇到一个比较郁闷的问题,在虚拟机上操作Linux系统查看IP的时候,发现没有ens33或者eth0了,试了很多办法都没有出来二、解决办法(找了很多办法之后,执行了下面三行命令就成功了)systemctl stop NetworkManager 临时关闭systemctl disable NetworkManager

2020-10-06 14:29:14 3284

原创 Linux 中ifconfig和ip addr命令查看不到ip解决方法

1.输入查看ip的命令ifconfig或ip addr,查不到ip2.查看ens33网卡配置,输入 vi /etc/sysconfig/network-scripts/ifcfg-ens33将ONBOOT权限改为yes保存退出,按Esc,输入:wq3.重启网络服务,输入sudo service network restart4.输入ifconfig(或ip addr)查看ip即可另:若网卡开启后,输入ifconfig提示 commond no...

2020-10-06 14:27:28 1242

原创 Vue在Win系统下本地项目的安装与部署9/18

Vue在Windows系统下本地项目的安装https://blog.csdn.net/qq_37495916/article/details/80626615Vue在Windows系统下本地项目的部署https://www.cnblogs.com/badaoliumangqizhi/p/13297929.html

2020-09-18 12:13:15 150

原创 vue强制刷新某组件(销毁并重置)

在需要强制刷新的组件中添加v-if="hackReset"data中设置hackReset : false点击按钮触发显示该组件的methods应执行下面代码:this.$nextTick(() => {this.hackReset = true})

2020-08-14 20:53:01 1322

转载 2020-08-05 vue如何刷新当前页面的方法

1.场景在处理列表时,常常有删除一条数据或者新增数据之后需要重新刷新当前页面的需求。2.遇到的问题1. 用vue-router重新路由到当前页面,页面是不进行刷新的2.采用window.reload(),或者router.go(0)刷新时,整个浏览器进行了重新加载,闪烁,体验不好3.解决方法provide / inject组合作用:允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。App.vue:声明reload方法,

2020-08-05 21:24:11 152

原创 Django项目运行时出现self.status.split(‘ ‘,1)[0], self.bytes_sent,ConnectionAbortedError: [WinError 10053] 你

1 [02/Nov/2018 09:46:51] "GET /new_industry/category HTTP/1.1" 200 2891792 2 Traceback (most recent call last): 3 File "C:\Program Files\Python36\lib\wsgiref\handlers.py", line 138, in run 4 self.finish_response() 5 File "C:\Program File...

2020-07-28 10:47:41 449

原创 + CategoryInfo : NotSpecified: (:) [], PSSecurityException + FullyQualifiedErrorId : RuntimeExceptio

File C:\Users\danv\Documents\WindowsPowerShell\profile.ps1 cannot be loaded because theexecution of scripts is disabled on this system. Please see "get-help about_signing" formore details.At line:1 char:2+ . <<<< 'C:\Users\danv\Documen...

2020-06-29 22:50:49 4190

原创 更新了sqlite3之后仍然报错SQLite 3.8.3 or later is required (found 3.7.17)

跟着步骤更新了sqlite3,依然报错SQLite 3.8.3 or later is required (found 3.7.17)下面是经过搜索得到了一个有趣的解决方案“我终于理解为什么毕达哥拉斯会把希帕索斯扔进爱琴海里了, 解决问题的最好方法果然是消灭提出问题的人,我把check_sqlite_version的那个函数pass掉,软件就能正常运行了。”File "/usr/local/lib64/python3.6/site-packages/django/db/backends/s..

2020-06-20 18:30:50 2618 6

原创 post 变成option 请求的三种原因以及解决办法

1.Http Options Method简而言之,OPTIONS请求方法的主要用途有两个:获取服务器支持的HTTP请求方法; 用来检查服务器的性能。2.CORS(跨域资源共享)CORS是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源。而这种访问是被同源策略所禁止的。CORS系统定义了一种浏览器和服务器交互的方式来确定是否允许跨域请求。前端客户端使用XmlHttpRequest发起Ajax请求,当前绝大部分浏览器已经支持CO...

2020-06-20 16:22:24 15612 2

原创 linux部署django遇到的问题

在虚拟机中的linux上运行了Django项目,虚拟机中可以访问,但外部主机无法访问(连接超时),但主机能ping同虚拟机,虚拟机也能ping通主机需检查三个地方:(后面发现虚拟机的ip地址存在改变的情况,可能是由于主机网络是通过wifi连接的,所以地址经常变,虚拟机ip地址变更后,未改变下面的第二步的设置,主机依旧可以访问虚拟机的django网站,所以第二步并不是必须的步骤)1.运行Django的命令,要写成:python3 manage.py runserver 0.0.0.0:8000 ,重.

2020-06-20 15:24:02 332

原创 内存、顺序表、链表

内存计算机的作用 用来存储和运算二进制的数据 问题:计算机如何计算1+2? 将1和2的二进制类型的数据加载到计算机的内存中,然后使用寄存器进行数值的预算。 变量的概念 变量就是某一块内存 内存空间是有两个默认的属性: 内存空间的大小 bit(位):一个bit大小的内存空间只能存放一位二进制的数 byte(字节):8bit kb:1024byte 内存空间的地址 使用一个十六进制的数值表示 作用:让cup寻址 形象化

2020-06-17 18:44:15 203

原创 用python实现栈和队列

栈:class Stack(): def __init__(self): self.items = [] def push(self,item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return len(self.items) - 1 def isEmpty(self):

2020-06-17 18:33:06 213

原创 用python实现基本的排序

冒泡排序def sort(alist): for j in range(len(alist)-1): for i in range(len(alist)-1-j): if alist[i] > alist[i+1]: alist[i], alist[i+1] = alist[i+1], alist[i] return alist选择排序def sort(alist): max_inde

2020-06-17 17:05:24 135

原创 查找算法之二分查找

def find(alist, item): find = False first = 0 last = len(alist) - 1 while first <= last: mid_index = (first + last) // 2 if alist[mid_index] < item: first = mid_index + 1 elif alist[mid_index] .

2020-06-16 18:05:28 142

原创 用python实现排序二叉树(中序)

class SortTree(): def __init__(self): self.root = None def add(self, item): node = Node(item) cur = self.root if cur == None: self.root = node return while cur: if i.

2020-06-16 14:32:08 464

原创 用python实现一个二叉树结构,并实现前后后序遍历

class Node(): def __init__(self, item): self.item = item self.left = None self.right = Noneclass Tree(): def __init__(self): self.root = None def addNode(self, item): node = Node(item) if.

2020-06-16 12:18:45 247

原创 python 装饰器和中间件的联系和区别

一、 定义1.装饰器是Python的一种语法应用,利用闭包的原理去更改一个函数的功能,即让一个函数执行之前先到另外一个函数中执行其他需求语句,在执行该函数。在开发项目中,通常使用装饰器来管理权限,登录等等,配上Python的 @ 语法糖,轻松实现代码的重用性和低耦合性。2.而Django中的中间件是利用面向切面的编程思想,对Django服务器访问过程中间进行干预。是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出 激活:添加到Djang...

2020-06-11 14:31:34 452

原创 Python的两个字典列表的交集

我有2个像dic的列表list1 = [{'count': 351, 'evt_datetime': datetime.datetime(2015, 10, 23, 8, 45), 'att_value': 'red'}, {'count': 332, 'evt_datetime': datetime.datetime(2015, 10, 23, 8, 45), 'att_value': 'red'}, {'count': 336, 'evt_datetime': da...

2020-06-03 18:27:11 1820

原创 单例模式有什么作用

https://blog.csdn.net/ljhljh8888/article/details/8017701

2020-06-01 16:34:52 687

原创 使用普通爬虫和协程爬虫爬取汽车之家所有文章的基础数据

普通版本:from time import sleepfrom lxml import etreeimport requestsimport jsonimport randomimport timeheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'

2020-05-19 19:46:43 379

原创 一些网站的反爬机制(持续补充中)

妹子图这个网站的反爬虫机制比较简单。当我们使用网络请求库下载图片时,该网站会对检查每个 HTTP 请求的 headers 头部中 Referer 字段。它判断该字段是否为空,如果字段为空,那么不会返回正常显示的图片,而是返回一张带有“图片来自妹子网,请勿盗链”字样的图片。遇到这种机制,突破也是比较简单。对每个 HTTP 请求,将页面的 url 地址填充到 Referer 字段中。豆瓣几乎所有的爬虫新手都会爬取豆瓣练练手。但是豆瓣还是保持开放的态度,反爬虫机制做得还是很人性化。它的反爬虫机制大

2020-05-19 19:33:34 1045

空空如也

空空如也

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

TA关注的人

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