自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

职场亮哥

我不是咸鱼,我有梦想

  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

原创 Python时间模块常用操作总结

时间模块常用操作总结为下列各个函数:#!/usr/bin/env python# -*- coding: utf-8 -*-import sysreload(sys)sys.setdefaultencoding('utf-8')import timeimport datetimeimport calendardef second_to_datetime_string(seconds): """ 将从公元0年开始的秒数转换为

2020-12-01 11:04:19

原创 ubuntu16.04配置samba解决linux的svn使用舒适问题

个人感觉,svn的命令行使用起来没有git那么舒适,但是windows上的svn GUI客户端TortoiseSVN 使用非常方便。因此对于经常在虚拟机中做服务程序开发但是又不得不用svn的同学来说,结合linux开发环境和TortoiseSVN 来管理代码版本就显得尤其有用。安装配置sambaubuntu上使用apt-get安装apt-get install samba samba-common关闭防火墙systemctl stop ufw使用vim /etc/samba/smb.conf

2020-11-19 10:05:01 7

原创 最简洁的Erlang基础

0x00 说在前面Erlang读音/ˈɜːrlæŋ/。第一次见到的时候总感觉怎么读都读不对,后来在维基上看到Erlang标注了音标,才能准确的读出来,而且也没那么怪异。因为工作才有机会接触这门语言,也因此只有三天的时间可以看《Erlang程序设计》这本书。学习这门语言的时候带着一个工作目标:把一个Erlang日志收集分析统计的代码转换成Python的。而Erlang的风格是尽量不写注释,尽量在写函数名和变量名的时候表达清楚代码的含义。这样一来学习Erlang就成了必要的,很庆幸,领导给了三天时间学习,三天

2020-11-18 12:32:41 26

原创 设计一个基于flask的高并发高可用的查询ip的http服务

结构设计基础架构为flask+gunicorn+负载均衡,负载均衡分为阿里云硬件负载均衡服务和软负载nginx。gunicorn使用supervisor进行管理。使用nginx软件负载结构图使用阿里云硬件负载均衡服务结构图因为flask app需要在内存中保存ip树以及国家、省份、城市相关的字典,因此占用内存较高。gunicorn的1个worker需要占用300M内存,nginx的4个worker内存占用较小(不到100M),因此占用1.3G的内存(即需要一个2G内存的服务器)。当gunicor

2020-11-11 10:48:34 31

原创 CentOS7-Nginx配置Let‘s-Encrypt-SSL证书

Let's-Encrypt为http站点添加https支持,需要从证书发行机构获取SSL/TLS 证书。常见的免费证书有两种:Let's-Encrypt,本文即将介绍,Let's-Encrypt大法好。caddy,原生支持 HTTP/2,自动创建 Let’s Encrypt 证书,非常简单易用。安装yum install epel-release -yyum install certbot -y配置certbot certonly --webroot -w /ww

2020-11-09 11:06:02 25

原创 元旦去峨眉山吧,人间值得

每年到了10月底11月初的时候,就会开始计划一年一度的大学室友聚会。前几年关于目的地是没什么争议的,因为其中一个舍友,人称装逼王的旭云在成都电子科技大学读研究生,所以每年都是在成都以及周边聚聚,比如重庆,都江堰之类的。今年比较特殊,装逼王要毕业了,时间很充裕,去哪儿都行。四人小团队第一次遇到在哪个城市聚会的问题。可能很多小伙伴元旦也开始计划元旦出行,但是又不知道去哪儿。那可以看下我们的决策方法,应该有一些借鉴意义。定决策方案既然不知道干什么那就roll一下定聚会目的一年没见了,检查下大家伙有没

2020-10-27 11:00:39 1106

原创 常用Oracle SQL集锦

常用dml和query开并行--开并行ALTER SESSION FORCE PARALLEL DML PARALLEL 16;ALTER SESSION FORCE PARALLEL QUERY PARALLEL 16;--关并行ALTER SESSION DISABLE PARALLEL DML ;ALTER SESSION DISABLE PARALLEL QUERY;索引开并行drop index IDX_SB_SBZT_LRRQ;create index IDX_SB_SBZT_

2020-10-16 10:04:41 14

原创 结合公司现状浅谈CMDB

本篇文章结合参考资料中的几篇CMDB的文章再加上目前公司的现状谈一谈CMDB。CMDB概述CMDB:configuration management database,配置管理数据库。CMDB本质上是一个数据库,提供数据的存储、查询、校验等操作,是一个集中式的数据托管中心,托管的内容包含所有的软硬件资产(configuration items)。各个部门各个团队各个系统下属的各种重要的软硬件资产都属于CMDB统一管理的内容。公司运维现状资产现状全国各地区内网不互通。这个就是现状了,因为公司产品是为

2020-10-13 09:41:16 152

原创 CentOS7-Nginx编译安装

安装编译环境需先安装好编译环境make,gcc和g++ 开发库yum -y install gcc automake autoconf libtool makeyum install gcc gcc-c++安装pcrepcre(Perl Compatible Regular Expressions): perl 兼容的正则表达式库。以下各编译安装的源码包均放在/usr/local/src下,Nginx依赖pcre是为了重写rewrite。从ftp://ftp.csx.cam.ac.uk/pub

2020-10-12 12:36:10 10

原创 Linux配置C++11编译环境

配置yum源此处我们使用163的yum源,配置如下首先备份/etc/yum.repos.d/CentOS-Base.repomv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份),以下为下载链接https://mirrors.163.com/.help/CentOS6-Base-163.repo运行以下命令生

2020-10-10 09:34:43 80

原创 Python实现通用web框架

概述Python WSGI规定了Web服务器和Python Web应用程序或Web框架之间的标准接口,主要是为了促进Web应用程序在各种Web服务器上的可移植性。在WSGI的规范下,各种各样的Web服务器和Web框架都可以很好的交互。由于WSGI的存在,用Python写一个简单的Web框架也变得容易了。Web框架的核心部分是路由系统,客户端的请求Request发到wsgi服务器之后Web框架根据请求中的method和path进行多级路由后找到对应的handle方法,在调用方法处理Request得到Res

2020-10-09 09:41:32 22

原创 SQLAlchemy使用

简介SQLAlchemy是Python语言的一款流行的ORM(Object Relational Mapper)框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,即将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。安装SQLAlchemy也很简单,直接使用pip安装即可。pip install sqlalchemy下面重点介绍SQLAlchemy的使用。版本检查import sqlalchemysqlalchemy.__version__ # 1.1.9

2020-10-08 23:41:05 28 2

原创 Python pymysql

安装安装mysql数据库的难度和oracle数据库简直没得比,安装步骤如下:安装MariaDByum install mariadb mariadb-server # 安装,centos7默认的mysql就是mariadbsystemctl start mariadb # 启动mariadbsystemctl enable mariadb # 开机自启动mysql_secure_installation # 设置root密码mysql -uroot -p # 登录安装pymysql

2020-10-07 22:08:18 23

原创 Python-WSGI接口

Python WSGI规定了Web服务器和Python Web应用程序或Web框架之间的标准接口,主要是为了促进Web应用程序在各种Web服务器上的可移植性。上述这句话翻译自Python官方的PEP333标准:PEP 333 -- Python Web Server Gateway Interface v1.0WSGI接口概述WSGI的含义:Web Server Gateway Interface(Web服务器网管接口)。WSGI接口包含两方面:server/gateway端 及 applicati

2020-10-07 12:13:37 22

原创 Python网络编程

Python 提供了两个级别访问的网络服务。:低级别的网络服务支持基本的 socket,,可以访问底层操作系统Socket接口的方法。高级别的网络服务模块 socketserver, 可以简化网络服务器的开发。socket查看socket类的帮助如下import socket # 导入socket模块>>> help(socket.socket)重点关注初始化函数:__init__(self, family=<AddressFamily.AF_INET: 2&g

2020-10-06 15:56:12 20

原创 Python多线程

多线程基础概念并行与并发并行:同时处理多个任务,必须在多核环境下一段时间内同时处理多个任务,单核也可以并发并发手段线程:内核空间的调度进程:内核空间的调度协程:用户空间的调度线程可以允许程序在同一进程空间中并发运行多个操作。本次主要介绍Python标准库中的多线程模块threading。threading模块线程初始化使用threading模块的Thread类初始化对象然后调用start方法启动线程。import threadingimport timedef wo

2020-10-06 13:55:42 38

原创 Python描述器

引入描述器以stackoverflow上关于描述器(descriptor )的疑问开篇。class Celsius: def __get__(self, instance, owner): return 5 * (instance.fahrenheit - 32) / 9 def __set__(self, instance, value): instance.fahrenheit = 32 + 9 * value / 5class Temper

2020-10-05 20:44:22 43

原创 Python面向对象的魔术方法

魔术方法查看类的魔术方法class A: passdir(A) # 可以得到类所有公有成员输出结果如下['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__'

2020-10-04 20:36:53 20

原创 Python面向对象基础

类的定义类的定义的语法class ClassName: <statement-1> . . . <statement-N>示例代码class Door: def __init__(self, number, status): self.number = number self.status = status类的实例化class Door: def __init__(self, nu

2020-10-02 17:42:57 32

原创 Python异常处理

区分Exception和Syntax Error在写Python程序的时候经常会报错,报错通常有以下两种情况:语法错误(Syntax Error): 部分语法错误属于异常异常(Exception)语法错误语法错误也称为解析错误,是最常遇到的一种错误In [1]: while True print('Hello!') File "<ipython-input-1-5c66e4fd0ae9>", line 1 while True pr

2020-10-01 15:39:06 70

原创 Python装饰器实现函数动态类型检查

函数动态类型检查的装饰器代码import inspectimport functoolsdef typeHints(fn): @functools.wraps(fn) def wrap(*args, **kwargs): sig = inspect.signature(fn) params = sig.parameters # 处理kwargs:字典 for k, v in kwargs: par

2020-10-01 12:03:02 41

原创 Python装饰器

引入装饰器如果想在一个函数执行前后执行一些别的代码,比如打印一点日志用来输出这个函数的调用情况那应该怎么做呢?#!/usr/bin/env python# coding=utf-8def logger(fn): # 函数作为参数即fn可以为任何参数 def wrap(*args, **kwargs): # 可变参数args和kwargs print('call

2020-09-30 19:27:50 16

原创 Python IO

文件打开和关闭文件打开和关闭就是两个函数,一个open函数一个close函数open函数的原型open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)前面说open函数返回的是一个file-like对象,但是这个file-like对象并不是固定的,这个对象的类型会随着打开mode的变化而变化。以文本模式打开文件('w&#39

2020-09-30 10:38:15 28

原创 Python拉链法和开地址法实现字典

Python字典(dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。在列表中使用下标索引可以快速的得到对应的值,那么我们需要做的有两件事情:怎样把键计算出一个唯一值怎样把这个唯一值均匀并且唯一的分布在长度固定的列表中怎样把键计算出一个唯一值 因为字典的键是不可变的,可hash的,因此我们可以用hash函数计算key对应的唯一hash值。怎样把这个唯一

2020-09-29 15:09:19 37

原创 Python解析式

在python中经常能够看到形如ret = [x ** 2 for x in lst]这样的赋值语句,对于从C++转到python的人不太容易理解这种for循环的使用,这就是python为了简洁而发明的新语法。python解析式有以下优点:代码简洁,可读性强效率比普通迭代稍高python的解析式具体分为以下四种:列表解析式生成器解析式集合解析式字典解析式下面分别介绍这四种解析式的使用。列表解析式列表解析式的形式[expr for e in iterator]In [1

2020-09-29 09:45:19 27

原创 Python函数详解

函数是Python里组织代码的最小单元,Python函数包含以下几个部分:定义函数调用函数参数函数的返回值函数的嵌套作用域函数执行流程递归函数匿名函数生成器高阶函数定义函数def add(x, y): # 函数定义 def 表示定义一个函数, 紧接着是函数名 函数名后面用一对小括号列出参数列表,参数列表后面使用一个冒号开始函数体 print(x + y) # 函数体是正常的Python语句,可以包含任意结构 return x + y # re

2020-09-28 16:45:08 75

原创 Python解构与封装

提出问题先看以下代码x = 1y = 2tmp = xx = yy = tmpprint(x, y)代码的输出结果是:2 1再看以下代码:x = 1y = 2x, y = y, xprint(x, y)代码的输出结果是:2 1x, y = y, x这段代码背后的含义就是解构和封装Python封装In [1]: t = 1, 2In [2]: tOut[2]: (1, 2)In [3]: type(t)Out[3]: tuple #

2020-09-28 12:58:40 19

原创 Python习题集

求100万以内的所有素数个数第一种方法思路:当前数为i,则遍历比int(sqrt(i))+1小的所有数是是否都不可以整除,是,则是素数理论:如果遍历所有比i小的除数j并且当除数j>int(sqrt(i))时,如果j能整出i,那么必定存在一个小于int(sqrt(i))的数能整出i,因此我们只需只需遍历int(sqrt(i))+1以内的数即可代码cnt = 0for i in range(2,1000000): for j in range(2, int(i ** 0.5) + 1)

2020-09-27 10:58:17 125

原创 Python函数定义及参数详解

函数定义首先我们来创建一个函数,输出指定范围内的斐波拉契数列(Fibonacci series)。#!/usr/bin/env python #coding=utf-8'''Created on 2016年9月4日下午2:37:31@author: Flowsnow@file: D:/Workspaces/eclipse/HelloPython/main/FibonacciSeries.py@function: 定义函数-输出给定范围内的斐波拉契数列'&#3

2020-09-26 09:35:26 46

原创 Python基本数据类型-list-tuple-dict-set详解

Python基本数据类型-list-tuple-dict-set数据类型表示方法特性list列表用方括号表示:[]list是一种有序的集合,可以随时添加和删除其中的元素。和C++数组的区别就是类型可不同。tuple元组用圆括号表示:()和list相比唯一的差异在于元组是只读的,不能修改。dict字典用花括号表示:{}列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。setset()集合是一

2020-09-24 09:27:36 45

原创 Python字符串详解

str本质Python str的本质可以通过help命令查看>>> help(str)可以看到Help on class str in module __builtin__:class str(basestring) | str(object='') -> string | | Return a nice string representation of the object. | If the argument is a string,

2020-09-23 12:52:09 44

原创 OpenCV的Mat类型以及基本函数使用

OpenCV的Mat类型以及基本函数使用Mat和IplImage的区别Mat和IplImage的主要区别在OpenCV中IplImage是表示一个图像的结构体,也是从OpenCV1.0到目前最为重要的一个结构;在之前的图像表示用IplImage,而且之前的OpenCV是用C语言编写的,提供的接口也是C语言接口。Mat是后来OpenCV封装的一个C++类,用来表示一个图像,和IplImage表示基本一致,但是Mat还添加了一些图像函数。IplImageIplImage数据结构的定义在opencv\

2020-09-22 10:24:38 54

原创 Python自动化运维答疑解惑

以下为Python入门的几个常见疑惑,现在统一在下面列出。1、如果使用Python3.5.2,但是一般公司的生产环境上都是linux默认的Python,一般是2.6.6,而且没有权限更改,这种情况下我们有什么好的办法吗? python2一般都有的第三方库,在Python3中都会有的,而且Python2在2020年就彻底停止支持了,所以没有特殊情况,直接选择python最新版本即可。除非你的项目必须依赖一个python2的第三方库且这个库在python3中并没有。2、Python在现在以及未来主要应

2020-09-21 19:20:08 53

原创 运维人员常用的Linux命令总结

目录结构目录说明/bin存放可执行文件/boot核心与启动相关文件/dev设备有关的文件/etc相关的配置信息/etc/rc.d存放开关机过程中用到的脚本文件/etc/rc.d/init.d所以服务默认的启动脚本都放在这里/etc/xinetd.d启动服务可在此找到/etc/X11与X windows有关的配置文件/lib执行或编译某些程序时用到的函数库/proc系统核心与执行程序所需要的一些信息。都是内存中的数据

2020-09-20 10:24:59 29

原创 oracle的userenv和nls_lang详解

oracle的userenv和nls_lang详解1、userenv最常见的使用userenv函数返回当前会话(session)的相关信息。以下sql语句可以查询当前会话连接的数据库字符集select userenv('language') from dual;有关userenv('parameter')返回值的官网介绍如下意思就是:返回的是当前会话使用的language和territory。characterset是数据库的字符集。下面我们就去验证这种情况

2020-09-19 15:03:04 42

原创 Oracle字符集检查和修改

Oracle字符集检查和修改在部署重构版测试环境时,需要创建Oracle数据库,使用dbca创建数据库之后没有注意数据库本身的字符集,导致后续所有的数据库脚本执行后中文乱码。最后的解决办法是清掉全库数据,再修改字符集,重启数据库。1、Oracle字符集概述系统或者程序运行的环境就是一个我们常见的locale。而设置数据库locale最简单的方法就是设置NLS_LANG这个环境参数。在linux中NLS_LANG是一个环境变量,在windows中NLS_LANG是写在注册表中的。NLS_LANG这个参数

2020-09-19 10:54:51 14

原创 sql语句中(+)的作用

演示示例说明:以下示例中,表a是员工表,有a,b,c,d四个员工,性别都是男性m。表b是工资表,有a,b,d四个员工,工资对应的是1000,2000,4000。然后分别演示带(+)符号的和不带(+)符号的,结果如下。SQL> select * from a;NAME SEX-------------------- -----a mb mc m

2020-09-18 23:22:40 102

原创 Oracle事务Transaction

参考资料:Transactions关于Oracle事务的总结什么是事务?事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。事务的属性-ACID原子性(Atomicity)-事务的原子性强调了一个事物是一个逻辑工作单元,是一个整体,是不可分割的。一个事务所包含的操作要么全部做,要不全部不做。一致性(Consistency)-

2020-09-18 10:11:09 80

原创 PL/SQL Developer连接本地Oracle 11g 64位数据库

登陆PL/SQL假定本地电脑中已经安装了Oracle 11gR2数据库和PL/SQL developer。如果没有安装可以在一下地址下载安装:Oracle 11gR2数据库:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.htmlPL/SQL developer(含注册机):https://pan.baidu.com/s/1kUfY8GB 密码: 1ky8

2020-09-15 20:03:27 19

原创 Oracle闪回flashback

参考资料:Using Oracle Flashback TechnologyOracle 11g的新特性闪回操作闪回查询闪回查询闪回版本查询闪回事务查询闪回数据闪回表闪回删除闪回数据闪回归档下面会分别介绍这些操作。在介绍这些操作之前先看下闪回特性是否开启。检查闪回特性是否启用参考资料:Configuring Your Database for Oracle Flashback Technology打开或关闭oracle数据库的闪回功能步骤 确认数据库闪回特性.

2020-09-15 17:40:01 79

图像拼接代码

配置环境:VS2010+OpenCV2.4.9 实现了基本的图像拼接,使用的是OpenCV里面的Stitcher类的各个成员函数,分析了Stitcher类,同时给出了拼接技术的流水线。为要用OpenCV做图像拼接技术的人员提供了一个入门教程。

2014-12-13

空空如也

空空如也

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

TA关注的人 TA的粉丝

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