自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿良

曾经不止一次想过放弃,可还是挺了过来。

  • 博客(36)
  • 收藏
  • 关注

原创 python kubernetes verify_ssl 认证失败 解决办法

【代码】python kubernetes verify_ssl 认证失败 解决办法。

2023-02-09 17:44:46 479

原创 python k8s获取 配置信息 bug修复

k8s python ssl

2022-10-10 15:13:57 189

原创 CICD感想

cicd分开是一种不错的选择,上线之前ci,构建好镜像,打好包,存到制品库,打好tag,运维上线只需要cd,减少上线时间,版本回退也可以直接从制品库中拉取指定tag的镜像替换。

2022-07-29 16:32:41 147

原创 python解析yaml字符串到字典

import yamldct = yaml.safe_load('''name: Johnage: 30automobiles:- brand: Honda type: Odyssey year: 2018- brand: Toyota type: Sienna year: 2015''')assert dct['name'] == 'John'assert dct['age'] == 30assert len(dct["automobiles"]) == 2asse

2022-02-10 10:52:28 1512

原创 gitlab open api v4 api

class NewGitlab: def __init__(self, access_token, api_version, git_url): self.headers = { "PRIVATE-TOKEN": access_token # 账户生成的access_token } self.api_version = api_version, # gitlab api 版本 self.git_url =

2022-01-13 20:38:25 1035

原创 flask数据权限

web项目做权限限制的时候一般是前端权限和后端权限,前端权限又分为路由权限和按钮权限,这里的前端权限是在前后端分离的基础上,博主使用的是vue框架。后端权限主要是在数据处理上做限制,形成数据权限。前端权限比较好做,晚上也有不少博主更新。这里主要说的是在flask的基础上做数据权限,在使用flask做后端开发时,数据库的增删改查一般都是用orm进行操作,博主想的是既然要做数据权限就是要在根部进行数据限制,也就是在orm查询的时候进行限制。让用户只能看到指定数据。所以博主想的方案是自增orm查询方

2021-09-13 16:14:11 544

原创 Centos7 搭建 LogAnalyzer4.1.5 - 开源日志服务器

一、环境准备1、关闭selinux#vi /etc/selinux/config修改文件SELINUX=disabled这一步骤还可以使用命令直接修改#sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g’ /etc/selinux/config临时关闭#setenforce 02、关闭firewall#systemctl stop f...

2021-09-01 16:13:10 2012 1

原创 js判断字符串是不是回文字符串

var test1 = 'n333oon'; var test2 = ''; test1_len = test1.length - 1; for (let i = test1_len; i >= 0; i--) { test2 += test1[i] } var value = 0; for (let i = 0; i < test1.length; i++) { if (test1[i] === test2[i]

2020-05-27 14:55:57 490

原创 highcharts 时间不正确

当你在用highcharts的折线图和面积图的时候可能会遇到横坐标时间显示数值不正确的问题。这时候在保证你后台取到的数据是正确的时候,原因可能是highcharts时区问题,highcharts默认时区是UTC,这时候你会发现显示的时间要比你取到的时间早8个小时按如下设置就行了:&lt;script type="text/javascript"&gt; Highcharts.se...

2018-09-25 17:38:28 1250 1

原创 django 模板 渲染js中数据

当你使用pycharm作为蟒蛇的开发工具的时候,如果你使用的是django的模板语言,并将一个数组传递到前端js中就像这样:var list2 = {{ list1 }};这种情况下,pycharm会报错 ,所以你可能会加上一对引号在外面,防止报红,就像这样:var list2 = '{{ list1 }}';但这样你会发现,在循环打印这个数组的时候,就会变成一个字符串,所...

2018-07-30 09:10:58 3162

原创 Django request 接收复杂数据结构

一些复杂的数据结构django使用request的post方法是接收不了的,这时候可以在前端js中使用json将复杂的数据结构比如说数组转换成可以接收的格式,后端接收后在进行解析就好了。 下面是个例子: var data = { 'permissionlist':JSON.stringify(check_val), ...

2018-06-14 08:58:57 661

原创 python-defaultdict

众所周知,在Python中如果访问字典中不存在的键,会引发KeyError异常(JavaScript中如果对象中不存在某个属性,则返回undefined)。但是有时候,字典中的每个键都存在默认值是非常方便的。例如下面的例子:strings = (‘puppy’, ‘kitten’, ‘puppy’, ‘puppy’, ‘weasel’, ‘puppy’, ‘kitten...

2018-04-26 21:27:39 326

原创 makedown 和代码高亮

将 Markdown 格式的文本渲染成标准的 HTML 文档是一个复杂的工作,好在已有好心人帮我们完成了这些工作,我们直接使用即可。首先安装 Markdown,这是一个 Python 第三方库,激活虚拟环境,然后使用命令 pip install markdown 安装即可将 Markdown 格式的文本渲染成 HTML 文本非常简单,只需调用这个库的 markdown 方法即可。我们书写的博客

2018-02-01 09:37:24 1244

原创 泡菜模块和几个对文件处理的 第三方模块

先来看一下泡菜(pickle)模块的使用:一般情况下我们是这样进行文件的 读取操作的:with open(path, 'w', encoding='utf-8') as f: f.write('需要写入的内容') with open(path, 'r', encoding='utf-8') as f: f.read()现在我们使用泡菜模块来进行读取操作:import

2017-12-26 20:17:53 252

原创 python使用递归思想处理问题

今天我们主要学习使用递归思想处理,斐波那契数列,打印文件层级结构,汉诺塔小游戏。递归说的稍微简点就是函数调用自身的一种方法,哪有人说,自己调用自己那不就死循环的了吗,那就需要我们自己设定结束条件,我个人认为递归思想你只要把开头和结束条件理清了思路,中间的那大部分就是一遍又一遍的调用自身。先来看一下斐波纳挈数列,我们先是用循环在使用递归思想来打印:def fab(n): a = 0

2017-12-21 20:21:59 1145

原创 python简单的文件读写操作

我们想要对一个文件进行读写操作,就要先知道该文件的绝对路径,打开文件就要使用python内置得到open函数open函数有常用的三个参数,分别表示:文件路径(file),打开文件的模式(mode),编码格式(encoding)。打开文件的模式基础的有:'r','w','a'分别表示 只读,只写,追加写。其中'w'模式下,新写入的内容会把原先文件中的内容替换掉。'a'模式下,会在光标处添加

2017-12-15 11:00:54 5675

原创 python错误处理 一

先看一个例子:>>> def first_example(n):... return 1 / n...>>> first_example(5)0.2>>> first_example(0)Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 2

2017-12-14 21:35:46 498

原创 python函数式编程:匿名函数,装饰器,偏函数

一 匿名函数: 尽管python的语法已经很简洁,但是定义函数的过程还是相对繁琐,当我们在调用函数的过程中,python为我们提供了可以节省定义函数时间的方法,让我们可以不用显示的调用函数,那就是匿名函数,匿名函数使用lambda关键字:L= []L = list(map(lambda x: x * x,[1,2,3,4,5,6,7,8]))print(L)[1, 4, 9, 1

2017-12-13 17:38:48 272

原创 python列表生成式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。例一:生成0 - 9的列表:>>> a = []>>> a = [i for i in range(10)]>>> a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]例二: s1 = 'abcde' s2 = '12345' 生成 a1 a2 a3 a4 a5

2017-12-12 11:33:55 275

原创 python迭代器

我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带yield的generator function。 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。 可以使用isinstance()判断一个对象是否是Iterable对象:>>> from co

2017-12-12 09:43:12 186

原创 python中有关函数的全局变量和局部变量

例一:a = 9def b(): print(a)结果打印出来是:9a 是定义在函数外部的全局变量,在函数内部可以使用。例二:a = 4def b(): a = 8 print(a)b() print (a) 执行结果是:8,4在函数内部定义的a 是局部变量,当我们调用函数b的时候,函数内部打印的是局部变量,函数外部打印的是全局变量a,并没有改变外部的全局

2017-12-11 10:35:36 3885 1

原创 python中的递归函数

在一个函数内部,可以调用其他函数,假如一个函数在其内部可以调用自己,那么这个函数就是递归函数。 在计算数学中的阶乘时,我们常用for循环或者递归函数来实现,例如:计算9的阶乘:sum = 0for i in range(1,10): sum *= iprint(sum)使用递归函数实现:def me(x): if x == 1: return x

2017-12-01 13:14:50 4730

原创 python中容易误解的小问题和函数中的参数

python中整数只有int浮点数运算可能存在误差赋值语句不是表达式,不能打印输出 input输入的都是字符串在print输出的时候 使用+号链接输出一句话的时候,+号前后代表着彼此独立的字符串,系统需要为他们都分配内存空间,而使用字符串格式化的时候,就不会浪费系统资源 round()方法是四舍五入:当整数部分是 偶数,小数部分是5 的时候就会将小数部分舍去,整数部分是奇数 的时候,小数部分是5

2017-11-30 20:15:11 339

原创 java se 四大块 之线程(下)

public class Test{public static void main(String []args) throws InterrruptedException{Thread1 t=new Thread1();Thread th1=new Thread(t);Thread th2=new Thread(t);Thread th3=new Thread(t

2017-11-27 17:11:45 203

原创 进制数之间的转换

1:二进制转为十进制设有一个二进制数:0110 0100,转换为10进制为: 下面是竖式: 0110 0100 换算成 十进制 第0位 0 * 20  =  0第1位 0 * 21  =  0第2位 1 * 22  =  4第3位 0 * 23  =  0第4位 0 * 24  =  0第5位 1 * 25

2017-11-27 17:11:07 1996

原创 Java se四大块之线程(上)

一 程序 进程 线程程序:就是静态的代码进程:是正在运行的程序,系统会分配给他内存空间和资源,你打开两个软件时,其实在一个时间点上,只能有一个程序在cpu上运行,电脑是多核,但cpu的个数再多也不能多于进程数 ,你看着两个软件是在同时进行,实际上是电脑在频繁快速切换,一会运行这个程序一会运行另一个,就像是视频一样,其实只是图片,不过图片的快速切换,让你觉着他是一连串的动作。进程有自己的地址空

2017-11-23 16:36:28 262

原创 Java se 四大块之IO

Java se不分主要包括四大块内容:集合,io,多线程,网络编程。这篇文章主要是介绍IO部分。 1.流的概念 流是字节序列的抽象概念。 文件是数据的静态存储形式,而流是指数据传输时的形态。 流是:字节序列的抽象概念,数据传输的一种数据序列。提供了一种统一的方式向IO设备中读取和写入的方式。 文件是:一些具有永久存储,有序的具有名称的字节的集合。文件是流可操作的IO设备之一。除了文件流

2017-11-22 12:29:09 452

原创 抽象工厂模式

抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。确保原料的一致披萨店成功的关键在于新鲜、高质量的原料。要如何确保每家加盟店使用高质量的原料?你打算建造一家生成原料的工厂,并将原料运送到各家加盟店。对于这个做法,现在还剩下一个问题:加盟店坐落在不同的区域,纽约的红酱料和芝加哥的红酱料是不一样的。加盟店之间有相同的产品家族(意式腊肠、酱料、芝士、蔬菜等等

2017-11-16 21:40:27 164

原创 工厂方法模式

工厂方法模式                    工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到了子类。预定披萨假设你有一个披萨店,预定披萨的代码可能是这么写的:Pizza orderPizza(){ Pizza pizza = new Pizza(); // 准备面皮,加调料等 pizza

2017-11-16 21:36:09 217

原创 jvm存储位置的区别

在这里我们只说一下jvm中的几个经常提到的存储区域。 堆:存放所有new出来的对象和数组(数组是一种特殊的对象);栈:局部变量和引用变量,new出来的对象本身并不存在栈中,而是存放在堆中或者常量池中(字符串常量对象存放在常量池中);常量池:存放基本类型常量和字符串常量,静态中存放静态成员(static定义的)。 栈中的数据大小和生命周期是可以确定的,当引用不在指向对象或者是局部变量

2017-11-14 16:51:05 1037

转载 Java内部类

ava内部类详解  说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲:  一.内部类基础  二.深入理解内部类  三.内部类的使用场景和好处  四.常见的与内部类相关的笔试面试题  转载自

2017-11-10 14:46:31 217

原创 Java反射机制

Java反射机制若想通过类的不带参数的构造方法来生成对象,我们有两种方式:```a)先获得 Class 对象,然后通过该 Class 对象的 newInstance()方法直接生成即可:Class<?> classType = String.class; Object obj = classTy

2017-11-09 19:43:21 182

原创 Java 动态代理模式

对Java中的动态代理模式得到理解透彻可以帮助我们更好的理解Spring。例如Spring中的AOP,Struts2中的拦截器           代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

2017-11-08 22:06:00 212

原创 equals与==

equals()方法,该方法定义在Object类当中,因此Java中的每个类都具有该方法,对于Object类的equals()方法来说,它是判断调用equals()方法的引用与传进来的引用是否一致,即这两个引用是否指向的是同一个对象。对于Object类的equals()方法来说,它等价于==。对于String类的equals()方法来说,它是判断当前字符串与传进来的字符串的内容是否一致。对

2017-11-08 15:57:32 177

原创 Java static 关键字

static  关键字的主要功能 1. 修饰变量 2.修饰方法 3. 静态代码块 4.(还可以修饰内部类)一      修饰变量  1.静态变量 只能修饰成员变量,在内存里只有一份,类的所有实例共享这一份静态变量,非静态变量属于对象  每创建一个对象,都有一份与之对应。  2 .两者在内存中的位置不一样,静态变量在方法区中,非静态变量在堆中。  3.调用

2017-11-07 11:24:40 300

原创 Java面向对象(OOP)

面向对象可以说是建立在面向过程之上的。比如说完成一项任务,从开始去做到完成结束是个过程,中间的步骤是面向过程。而又可以把 整个过程分成一个个小的过程并封装起来,就成为了一个个的方法(一个个小小的过程也就是方法体里面的功能执行),分别放到各自的类中,,用通过类声明并创建对象,该环节就是面向对象的过程,而方法执行的过程,也就是实现他的功能,我觉着还是面向过程。所以Java中:JVM底层是用c和c++实现的。java类库就是用java语言实现的

2017-11-06 13:04:17 402

空空如也

空空如也

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

TA关注的人

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