自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Docker配置

刚接触Docker时感觉和虚拟机差不多,但是在了解过后才知道它内在的东西与虚拟机大不相同。虚拟机是虚拟出各种硬件设施,每新建一台虚拟机,就要虚拟出很多硬件设施,尤其是当同时开启多台虚拟机时特别耗费系统资源。而Docker就不同,它是基于真机的内核,利用真机的硬件来建立各式各样的容器,这个容器就像用户空间一样,是独立开的,和内核之间的关系也就像用户空间和内核的关系一样,节省了不少系统资源。我个人...

2019-09-28 23:12:07 161

原创 Nginx配置

在CentOS7上,yum源并没有nginx的资源,所以想要yum安装nginx,必须从官网导入文件,参考这条命令:rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmyum install nginx或者先安装epel源,然后再安装nginx,不...

2019-09-21 00:53:23 161

原创 MySQL实现主从复制

如果以后要面对庞大的客户群体,那么必然要有很多数据,此时数据库就必须集群化的管理和配置,为此MySQL有主从复制和读写分离的功能,这篇博客讲一讲主从复制的具体实现。主服务器配置首先,要在主服务器上开启二进制日志功能,在配置文件中添加这几行,一定要添加server ID。开启后,在主服务器上查询 show master status; 就会有如下信息。到这里,主服务器上就已经配置好了...

2019-09-12 00:19:35 164

原创 MySQL事务

MySQL中,事务由InnoDB引擎支持,事务的属性有:ACID。ACID原子性(atomicity)一个事务是一个不可分割的工作单位,事务中包括的所有操作要么全部做完,要么什么都不做一致性(consistency)事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的隔离性(isolation)一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用...

2019-09-11 23:37:49 214

原创 Flask里的session和cookie

session和cookie都是用来存储用户状态信息的,不同的是session是存储在服务器端,而cookie是存储在客户端。session通常来说,一个网站当用户登陆后,后台一定会有一些关于该用户的信息数据,比如什么黑名单用户、Vip用户等等。session在Flask框架里以字典形式存储。也因为session在服务器端存储,所以数据相对来说会更加的安全。cookie和session类似...

2019-09-08 23:34:48 188 1

原创 Flask源码解读尝试(二)

在煎熬中度过了四五天之后,算是能理解了一部分Flask框架的架构,也算是能了解了它背后所运行的机制,下面我举几个我自己感觉比较重要的。视图函数注册首先在用这个框架时,就是先定义一个Flask对象,里面传入名称,比如app=Flask(__name__)。在注册好后,我们第一部就是要注册路径,在官方手册的教程里都有,大概如下,@app.route('/')def fun(): ......

2019-09-05 23:41:26 132

原创 Flask源码解读尝试(一)

本着对框架学习的心,我尝试解读一下FLask框架的源码,不过这种东西并非我这种菜鸟能轻易理解的,所以打算分成好几篇博客来记录自己学习到的东西。第一篇先记录下自己所学习到的一些源码里的个别函数以及对上下文的管理机制。栈Flask源码里对http请求报文的存储方式为栈。只要学习过数据结构的大家都清楚,栈是先进后出,最先进去的数据压在最下面,最后进去的数据在顶部,取数据时从顶部依次往下取。所以...

2019-09-05 14:24:13 233

原创 利用Python实现极简版的静态网页Apache服务器

这一周的时间都用来写了一个极简版的静态网页的“Apache”服务器,其实写道这里我自己都笑了,因为功能实在是太简陋了,不过对于当前水平的我来说已经很不容易了,下面细说。首先想自己实现这么些个功能,肯定不能用Python里人家写好的模块和接口,所以我选择了用socket来实现。上方就是socket的一些函数接口,因为想要实现类似于Web服务器的功能,肯定要选用基于TCP协议的连接。因为我是网...

2019-09-01 23:56:25 552 1

原创 Python面向对象之描述器及“魔术”

面向对象在很多语言中都有,在Python中就有很多解释器留下的接口供程序员使用,具体内容看下文。__ getitem __:获取容器中的某个值。__ setitem __:给容器中设置某个值。__ missing __:当容器中key值不存在时。当在类中写了getitem和setitem方法时,给类的对象赋值时就可以像用字典那样赋值或读取数据了。missing方法主要就是当key值不存在时...

2019-09-01 22:45:36 173

原创 多线程学习

多线程关于多线程,以前在学习JAVA和操作系统时就学习过部分内容,但是接触都不深,所以在Python这里我打算往更深层次的学习。一般的线程没什么好说的,在Python调用threading模块,然后用threading.Thread()函数指定一个函数,可以选择给该线程起名字或者传参数,传参数时用args=()传,起名字用name=起,然后调用start()函数,就启用该线程了。一般来说,CP...

2019-08-20 23:02:36 125

原创 日志分析系统(滑动窗口及缓冲区的应用)

好几天都忙着在写一个日志分析系统,除了这个什么也没做,感觉自己什么也没学到,但是做完后回头一看,又发现收获颇丰,可能就是对实际做东西的能力得到了稍微的提升吧。先上代码。#!/usr/bin/python3import reimport datetimeimport loggingimport jsonfrom functools import wrapsd=dict()dargs...

2019-08-15 21:59:39 542 1

原创 正则表达式

上面这些就是正则表达式的代码符号。正则表达式用起来是很灵活的,想要熟练掌握,需要花费一定量的代码练习。正则的匹配顺序如下图而我主要想记录的,是正则在python当中的用法,在一些细微的地方还是与linux上的正则有些差别的。首先,想在python里用正则就要调用re模块。如果不编译的话,一般正则匹配的就是re.函数(‘正则表达式’,‘所要匹配的文本信息’)而如果将正则表达式编译的...

2019-08-12 00:01:47 116

原创 一个简易的命令

因为这个命令是我自己写的,说简易觉得有点夸张,说简陋都觉得羞愧。先上代码。#!/usr/bin/python3import argparseparse=argparse.ArgumentParser(prog='ck',add_help=True,\ description='this command will help u to check configuration')...

2019-08-07 23:12:13 185

原创 利用文件操作的缓存小工具

为了方便文件操作的学习,写一个缓存的小工具再合适不过了,再加上对Linux内部文件系统的一些原理性的学习,做到熟练应用感觉问题不大,只是时间问题,先上代码。#!/usr/bin/python3import functoolsimport jsonimport osimport timefrom collections import OrderedDictd=OrderedDict()...

2019-08-07 22:29:27 115

原创 装饰器、参数注解

装饰器刚开始比较难理解,写代码时不是不会写,而是不知道要去怎么实现功能,因为不仅要实现功能,而且要尽可能优化代码。先上一个无参数的简单的装饰器代码。#!/usr/bin/python3 d=dict()def dic(f): def dic1(*key,**value): d[f.__name__]=f return dic1@dicdef add():...

2019-08-03 18:38:29 186

原创 高阶函数

关于高阶函数,我个人感觉就是嵌套函数,在一个函数里调用另一个函数,把它们的功能相叠加,来达到不同的目的。先上几个我自己写的。#!/usr/bin/python3def inner(num): flag=False if num>=50: flag=True else: flag=False return flagdef ...

2019-08-03 18:29:50 123

原创 递归函数

起初并不知道递归到底是个什么概念,为了方便理解,我放张动图在这里。理解是什么之后,就先写了一个求阶乘的一个代码。#!/usr/bin/python3sumnum=1def fun(num): global sumnum sumnum=sumnum*num num=num-1 if num==1: return sumnum ...

2019-08-01 19:46:31 151

原创 关于Python里format的应用

今天在写代码时才意识到了format到底有多么重要,先附上我最初写的代码。#!/usr/bin/python3def fun(n): for i in range(n,0,-1): if i > 9: print('{}'.format(' '*(n-i)*2+' '*(n-i)),end='') else: ...

2019-08-01 19:34:05 331

原创 插入排序

一开始并没有搞懂插入排序是怎么运作的,但是发现有点像打扑克牌整理牌时有点像,就领悟到了精髓,不多说先附上代码,问题下面再说。插入排序#!/usr/bin/python3#插入排序import randomlst=[]for i in range(10): lst.append(random.randint(1,100))print(lst)for i in range...

2019-07-31 19:54:59 154

原创 Ubuntu与Win10双系统系统时间问题

安装了双系统后,每次进入Ubuntu后,再次进入Win10,就发现Win10的系统时间就变了,在网上查找资料后,重启进入BIOS,果然,BIOS的时间也变成了正常时间减去八小时后的时间,先来讲讲是为什么。Windows里系统时间是将BIOS的时间默认为本地时间,而Ubuntu是默认将BIOS时间认为是UTC时间,因为咱们是在东八区,所以再加上八个小时。所以当Ubuntu的时间校对后,就会将B...

2019-07-31 18:36:39 348

原创 选择排序算法及其优化

今天上课学习一种排序算法:选择排序。先附上代码选择排序#!/usr/bin/python3import randomlst=[]for i in range(10): lst.append(random.randint(1,100))print(lst)for i in range(len(lst)): m=lst[i] k=i for j in ...

2019-07-29 18:53:21 285

原创 对于Python里sort函数原理的好奇

今天上课时老师讲到了排序,这就强烈引起了我对sort函数原理的好奇心,自己去网上搜了搜,发现只能理解,只知道是Timesort算法,但根本想不出这种算法要怎么写!不多说,直接上链接吧,留给以后自己学习用。Timesort文档:https://blog.csdn.net/yangzhongblog/article/details/8184707代码和原理:https://blog.csdn.n...

2019-07-26 19:38:50 913

原创 冒泡排序的优化、分割字符串

冒泡排序在学习C语言时就学习过,但是只是学会了怎么用,今天老师问到了怎么优化冒泡排序的算法,一时间无从下手,最后还是从老师那里学到了优化方法。冒泡排序优化#!/usr/bin/python3l2=[]n=int(input("Pls input how many numbers u need:"))for i in range(n): b=int(input("Pls input...

2019-07-26 19:33:14 165

原创 随机数列求重、杨辉三角

昨天有两道题难到了我,琢磨一下午才琢磨出一个不错的方法来解决。其中一个是打出一个[1,20]范围的随机10个数字的数列,并且给出重复的数字和重复了多少次。一开始,我就想到了写两个for循环嵌套遍历数列,但是后面就发现了问题的所在,因为重复的数字在后面再次出现时又会遍历一遍,再次打印出来。最后我想出一个办法解决,每当有数字重复时,把这个数字放进一个列表,在下次外层循环开始执行时判断这次判断的这个数...

2019-07-26 19:08:49 168

原创 关于Python的学习、Ubuntu里VKM虚拟机的网络设置

这几天简单的学习了一些Python的语法,因为以前学过C、C++、JAVA的基础,所以入门还是比较容易的,不由得感叹,Python的语法真的是简洁明了,和Shell的用法极为相似,而且还有各种封装好的模块和函数,上手确实很容易理解。不过听人说是Python入门简单,学深了很难。起初我是被这话吓了一大跳,不过后来一想,学过几门的编程语言,不都是这样吗,打好基础、入门很简单,但是想往深处研究,哪个简...

2019-07-26 00:05:51 409

原创 关于安装Ubuntu18.04和Win10的双系统后,无法启动Ubuntu的问题。

我是用U盘烧录了Ubuntu18.04的镜像软件后,用U盘作为启动盘安装了Ubuntu。安装过程中整体无大碍,因为我要安装和Win10的双系统,所以在Win10中首先空出一块未分配的空间,此处要着重说明一下,因为我的Win10是动态磁盘,所以空出的那块空间在安装时无法识别出来,后来查了资料才知道动态磁盘在Win8还是Win7以后就引用在Windows当中了,也是Windows自己使用的磁盘划分工具...

2019-07-25 22:56:55 1048

空空如也

空空如也

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

TA关注的人

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