- 博客(62)
- 收藏
- 关注
原创 Docker安装Jenkins
一、Jenkins介绍Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。二、如何安装(这里使用docker安装)官方安装文档:https://jenkins.io/zh/doc/book/installing/安装命令:docker run -u root --name jenkins_demo --rm -d -p 8080...
2019-11-25 22:19:33 204
原创 Docker管理工具portainer的安装
1.Portainer介绍Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。2.安装Portainer官网地址:https://portainer.readthedocs.io/en/lat...
2019-11-22 21:59:27 507
原创 react生成二维码
需求背景:最近在做项目的时候有一个需求要通过手机扫描二维码下载不同版本的软件解决办法:通过react的插件qrcode.react实现案例实现:第一步:创建项目npx create-react-app test-qrcode第二步:在test-qrcode根目录下安装qrcode.reactnpm install qrcode.react --save第三步:修改A...
2019-08-03 08:44:49 887 1
原创 Koa2处理文件上传
背景:通过Koa2实现文件上传处理,1. 接收和处理前端提交的文件 2.返回文件的访问路径以及相应的参数目的:保存前端上传的文件,并返回相应的参数和保存文件的访问地址解决方案:1. 使用koa-multer实现文件上传并自定义文件名和目录 2. 通过静态服务器实现外部访问一、前端部分(index.ejs文件)<!DOCTYPE html><html>...
2019-05-10 16:19:46 3040 2
原创 基于Element UI的日期选择器时间选择范围限制以及筛选出指定时间段的日期
需求背景:有一个带时间的组合查询条件,要求起始日期和结束日期只能按周选择(本案例按周五选择)且起始日期不能大于结束日期解决思路:先判断和筛选出满足是周五的日期,然后将起始时间与结束时间进行比较,最终将满足条件的值返回代码实现如下:<template> <div> <div class="block"> <span class="d...
2018-10-26 16:30:52 6656 1
原创 Python成长记二十一(装饰器的副作用与解决方案)
问题:函数名称的影响案例1:打印函数名称import timedef decorator(func): def wrapper(): print(time.time()) func() return wrapperdef fun1(): print(fun1.__name__)fun1()结果:fun1案例2:i...
2018-08-05 10:19:40 374
原创 Python成长记二十(__len__与__bool__内置方法)
概念:__len__ :判断对象长度,在调用内联函数len()时被调用__bool__ :判断对象类型的方法案例1:class Test(): pass print(bool(Test())) 结果:True案例2:class Test(): def __len__(self): return 0 print(bool(Test...
2018-08-05 10:11:06 559
原创 Python成长记十九(None类型)
None类型的一些误区:None不等于空字符串、空列表、0、False验证1:(数值上)a = '' b = False c = [] print(a==None) print(b==None) print(c==None)结果:False False False验证2:(类型上)a = ''b = Falsec = []print(a is None)...
2018-08-05 09:59:07 287
原创 Python成长记十八(iterator与generator)
一、iterator即迭代器 可以被next()函数调用并不断返回下一个值的对象称为迭代器,要创建一个iterator,必须实现一个有__iter__()和__next__()方法的类。(1)可迭代对象(iterable),可用for in 语句遍历,比如列表(list),元组(tuple),集合(set) , 字典(dict) 等(2)对象 class,一个类对象不能直接被f...
2018-08-05 09:50:27 324
原创 Python成长记十七(推导式)
一、列表推导式案例1:a = [1,2,3,4,5,6] #计算列表平方 b = [i**2 for i in a] print(b)结果:[1, 4, 9, 16, 25, 36]案例2:案例2:(条件筛选) a = [1,2,3,4,5,6] #计算列表平方 b = [i**2 for i in a if i>=3] print(b)结果:[...
2018-08-05 08:43:31 199
原创 Python成长记十六(python中的switch语句)
我们都知道python中没有switch case语句这种写法,那么我们怎样使用python实现同样的功能呢?其他语言的switch case语句语法如下: switch(n){case 1: 执行代码块 1 break;case 2: 执行代码块 2 break;default: n 与 case 1 和 case 2 不同时执行的代码}比如在Java...
2018-08-05 08:33:56 15812 2
原创 Python成长记十五(python爬虫)
1、什么是网络爬虫概念:网络爬虫是一种按照一定的规则,自动抓取网站信息的程序。通过爬虫我们可以获取到我们想要的有价值的数据。2、爬虫的步骤 (1)明确目的。明确我们想要的数据,通过调研验证需求的可行性 (2)找到数据对应的网页 (3)分析网页的结构找到数据的标签位置 (4)模拟HTTP请求,向服务器发送这个请求,获取到服务器返回的HTM...
2018-08-04 10:28:21 303
原创 Python成长记十四(lambda表达式、map、reduce、filter、装饰器)
一、lambda表达式 作用:定义一个匿名函数 对比: 普通函数: def add(x,y): return x+y lamnda表达式格式: lambda parameter_list:expression 替换普通函数为: lambda x,y:x+y 案例: f = lambda x,y:x+y print(f(...
2018-07-14 09:48:57 381
原创 Python成长记十三(闭包)
函数式编程中的一种---闭包1、python中一切皆对象 例如: (1)函数可作为一个对象 (2)可作为一个函数的参数,传递到另外的函数里 (3)把一个函数当做另外一个函数的返回结果 案例: def demo(): pass print(type(demo)) 结果:<class 'function'> 2.闭包 定义:由函数和环境变量构成...
2018-07-07 10:37:12 285
原创 Python成长记十二(枚举)
枚举(其实就是一个类)案例: from enum import Enum class VIP(Enum): RED = 1 BLACK = 2 GREEN = 31.枚举和普通类相比有什么优势 普通类或者字典:(1)可变 (2)没有防止相同标签的功能 枚举:(1)不可变 (2)有防止相同标签的功能 比如: 不可变性: from enum import...
2018-07-05 21:43:19 245
原创 Python成长记十一(序列化与反序列化)
JSON(JavaScript对象标记,Javascript Object Notation) 1、概念:JSON是一种轻量级的数据交换格式(字符串是JSON的表现形式) JSON字符串和JSON对象的区别: JSON字符串:符合JSON格式的字符串叫做JSON字符串(比如:'{"name":"Jason"}' 仅仅是一个字符串,不能直接使用 JSON对象:可以直接操作的格...
2018-07-01 12:03:24 326 1
原创 Python成长记十(正则表达式)
正则表达式 1、定义:正则表达式是一个特殊的字符序列,能方便的检测一个字符串是否与某种特定的模式匹配(比如快速检索文本、实现一些替换文本的操作)。 应用场景:1.检索一串数字是否为电话号码 2.检测一个字符串是否为email 3.把一个文本里指定的单词替换为另一个单词等 2、使用内置函数判断是否包含: 例如: a = 'C|c++|Jav...
2018-07-01 10:32:16 591
原创 Python成长记九(面向对象)
面向对象1、定义:用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。2、类命名规则: (1)首字母大写 (2)总是使用首字母大写单词串,如:MyClassName(不建议下划线)3、作用:封装一系列的变量和方法小提示:一个模块里可以定义多个类,类中的方法不能自行调用执行。建议一个模块用于定义类,在另一个模块中实例化调用 例如: clas...
2018-06-23 12:12:35 287
原创 Python成长记八(函数)
函数特点:(1)功能性(2)隐藏细节 (3)避免编写重复的代码1.内置函数round()案例:取小数点后两位a = 3.141592654result = round(a,2)print(result)输出:3.142.查看内置函数的功能使用help()函数查看比如:help(print)查看python之禅:import this3.函数的基本结构: def funcname(parameter...
2018-06-02 10:56:34 270
原创 Python成长记七(包、模块)
1.工程组织结构:包、模块、类包:文件夹模块:.py文件类:函数、变量特点:一个包下面可以有多个模块,一个模块下可以有多个类导入包或模块: 1.import module_name (引入某个模块下的变量或者函数用点号连接) 注意:import只能导入模块,如果命名空间比较长可以用as替换一个别名 2.from module import a,def (from可以...
2018-05-27 08:43:28 281
原创 Python成长记六(循环控制语句while,for)
1.while循环与使用场景 结构: while condition: #代码块 pass 例子: (1) counter = 1 while counter <= 10: counter += 1 print(counter) (2) counter = 1 while counter <= 2: ...
2018-05-26 15:37:05 285
原创 Python成长记五(流程控制语句if,if-else,elif)
流程控制语句:一、python编码规范及特点:1.末尾没有分号,也不要用分号将两条命令放在同一行2.缩进区分代码块,用4个空格来缩进代码3.行长度每行建议不超过80个字符,如果一个文本字符串在一行放不下, 可以使用圆括号来实现隐式行连接,如:x = ('这是一个非常长非常长非常长非常长 ' '非常长非常长非常长非常长非常长非常长的字符串')4.括号:除非是用于实现行连接, 否则不要在返回语...
2018-05-26 10:24:40 388
原创 Python成长记四(表达式)
表达式概念定义:表达式(Expression)是运算符(operator)和操作数(operand)所构成的序列比如:a = 1;b = 2;c =3;a + b*c --->7a or b and c --->1(先且运算再或运算)如果同级则默认从左到右(a or b) and c --->3表达是顺序:左结合c = a +b (右结合)c = a or b ---> ...
2018-05-26 08:04:08 256
原创 Python成长记三(变量与运算符)
变量的定义:变量是计算机语言中能储存计算结果或能表示值抽象概念。(没有固定的值,可以改变)比如:skill = [“暴击”,“惩戒”,“闪现”,“净化”] (注意:变量命名可读性要强,可以用简介的英文单词来表示一个变量)变量命名规则:1.由字母、数字、下划线组成(首字母不能是数字)2.系统关键字不能用在变量名中(保留关键字)3.区分大小写4.没有类型限制例1: a=1 b=a a=3print(b...
2018-05-11 00:00:52 313
原创 Python成长记二(基本数据类型列表、元组、集合、字典)
列表:定义:type([1,2,3,4,5,6]) ---->list特性:type(["hello","world",1,9]) --->listtype(["hello","world",1,9,True,False])--->listtype([[1,2],[3,4],[True,False]])---->list (嵌套列表)列表的基本操作:["a&
2018-05-08 23:30:38 258
原创 Python成长记一(基本概念和基本数据类型)
啊哈,也不知什么原因导致这么久没写博客了,每一次查资料翻到自己的博客才发现不对呀,这写的东西也太少了吧!!!其实写博客也不是为了什么只是想记录一下自己学到的东西和犯过的错的一些解决方法还有就是希望能得到相关领域的专家或者爱好者的指正和建议。python这一系列的文章将记录我对python编程之美和python哲学的感悟一.python与python的特点: 1.python是一门编程语言,它只是众...
2018-05-05 11:26:06 236
原创 Python初体验一
在工作中当遇到一些问题时,难免会想到有没有一种语法简洁且能快速解决问题的方法。一个偶然的机会让我对Python爱不释手。使用Python很久了,但一直都是在使用而没有静下心来好好总结和归纳,正好趁这个假期好好梳理和总结一下以备今后忘记方便查阅1.什么是python 含义:蟒蛇 解释:一种解释型的、面向对象的、带有动态语义的高级程序设计语言2.python的缺点 (1)运行
2017-10-05 18:53:42 465 1
原创 Linux常用命令以及常遇问题总结
1.vmware介绍VMware:威睿vmware分类:vmware workstation ----在已有的平台安装的虚拟机版本vmware vsphere ----由多个软件集成,可运行多个操作系统。主要在裸机上运行2.基本使用 ---鼠标切换 Ctr+Alt 拖动鼠标 ---终端和界面切换 Ctr+Alt+F2/Ctr+Alt+F1
2017-10-05 18:46:47 666
原创 希尔排序
希尔排序:算法思想:希尔排序是插入排序的延伸,基于插入排序的两个性质而提出的改进。插入排序的两个性质分别是:1.对近乎于排好序的数据排序时才可以达到线性排序的效率;2.插入排序每次只能将元素移动一位。希尔排序是先取一个小于长度为n的整数gap作为第一个增量,让后把所有距离为gap的倍数的记录放在同一个数组中,对每个组分别进行插入排序,然后再取第二个增量gap1#include "stdaf
2017-06-04 22:16:32 333
原创 冒泡排序
冒泡排序:算法思想:从第一个元素开始,比较相邻的两个元素。经过交换将大的元素往后排。#include "stdafx.h"#include "stdlib.h"#include using namespace std;templatevoid bubbleSort(T arr[], int n) { //临时变量做交换使用 int temp; //扫描整个数组 for (
2017-04-26 21:35:02 237
原创 插入排序
插入排序算法思想:从第二个元素开始依次与前一个元素比较并交换位置#include "stdafx.h"#include #include "stdlib.h"#include using namespace std;templatevoid insertSort(T arr[], int n) { //查找数组中合适的位置插入 for (int i = 1; i < n
2017-04-25 21:59:27 265
原创 选择排序
很久以前就很想总结有关数据结构与算法的博客了,只是一直抽不出时间来总结。但无论如何都要把写博客养成自己的一种习惯,做到随时开发随时总结。我认为算法是程序的灵魂,数据结构是编程的基础两者在开发中是非常非常重要的,所以学好算法和数据结构对软件开发是有很大帮助的。下面将开启我的算法与数据结构学习之旅,在这里我选择用C++语言,话不多说,代码直接整起:一、选择排序#include "stdaf
2017-04-22 10:38:59 383
原创 CSS3中:before和:after的用法
什么是:before和:after?:before是css中的一种伪元素,可用于在某个元素之前插入某些内容。:after是css中的一种伪元素,可用于在某个元素之后插入某些内容。要实现的效果如下:代码如下:Examples#pencil{position: relative;width: 200px;heigh
2017-03-07 00:15:55 2814
原创 ThreeJS学习之旅(三)
这一篇主要学习代码重构的方法以及ThreeJS中的一些对象属性的介绍和使用:官方代码解析:Three框架div#canvas-frame {border: none;cursor: pointer;width: 100%;height: 600px;background-color: #EEEEEE;}
2017-02-19 17:02:22 1254
原创 ThreeJS学习之旅(2)
学习three.js的第一个程序---源码解析目标:创建一个正方体实例代码: canvas { width: 100%; height: 100% } //创建一个场景 var scene = new THREE.Scene(); //创建一个相机 va
2017-02-19 13:17:27 405
原创 ThreeJS学习之旅(1)
1.什么是threejs概念:three表示3D,js表示JavaScript简称:应用JavaScript开发的3D引擎2.作用:应用JavaScript编写在浏览器中运行的3D图形3.如何使用第一步引入three.js 代码示例: canvas { width: 100%; height: 100% }
2017-02-19 12:59:22 393
原创 JavaScript面向对象编程基础---封装
目的:把属性和方法封装成一个对象并从原型对象生成一个实例对象方法:采用Prototype模式原理介绍:在JavaScript中每一个构造函数都有一个prototype属性指向另一个对象,这个对象所有属性和方法都会被构造函数的实例继承封装:function Person(name,age){this.name = name;this.age = age;}Person
2017-02-15 09:57:28 294
原创 JUnit4
在实际项目开发中,我们经常会用到单元测试,如果习惯使用单元测试将会大大提高我们的开发效率。下面我将简单的总结一下JUnit4的使用,话不多说,案例直接整起。一.什么是JUnit 如果大家想了解更多有关JUnit4的用法以及查看更详细的文档,推荐大家访问以下链接: junit官网:http://junit.org/概念:xUnit是一套基于测试驱动开发的测试框架。比如
2016-10-06 21:33:52 435
原创 javascript中浮点数相加的一些细节
问题来源:有时候我们在对小数进行相加时会出现小数部分的无限循环,得到相加的结果并不准确。这是因为JavaScript 中的 number 浮点型是一种二进制表示法,可以精确地表示分数,但是,二进制浮点数表示法并不能精确的表示类似0.1这样 的简单的数字,会有舍入误差;比如: console.log(0.1+0.2); 输出结果为:0.30000000
2016-09-03 12:31:01 3099
原创 Git
一直都在用git对自己的项目进行管理,在开发过程中这个分布式管理系统能够很好对我们编写的代码进行版本控制以及分支的管理。因为平时事情比较多就没有时间来写自己的博客,但我觉得无论怎样都要抽时间来写自己的博客,这样可以避免一些问题:比如说很多技术可能在某段时间内记忆很清晰但时间长了容易忘记,还有就是记录一些已掌握的技术日记有利于今后项目的开发效率。这样不仅方便自己,也可以帮助到一些需要帮助的小伙伴,下
2016-08-13 14:11:24 674
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人