自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一叶孤舟YI的博客

six_gen_clear_jing

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

原创 运维篇二 满目疮痍 构建自动化管理平台

11

2019-12-05 11:58:01 354

原创 运维篇一 混沌初开,搭建ubuntu16.04初始环境

111

2019-12-05 11:56:41 389

原创 Linux python虚拟环境管理工具virtualenvwrapper

1 安装安装virtualenvwrapper工具pip3 install virtualenvwrapper2 配置环境变量,每次开机就加载 virtualenvwrapper 步骤: 1 打开个人用户配置文件 vim ~/.bashrc 回到最底行 2 添加环境变量export WORKON_HOME=~/Envs/ #设置vir...

2019-11-12 17:10:05 468

原创 通过接口返回二进制流数据

import StringIOclass ImplementOutIo(Handler): def get(): filepath ="/home/bolome/qa_test/bolo-server/internal/bin/jiji.zip" f = open(filepath, 'rb') # 打开文件, 将文件读进流 fio = String...

2019-11-04 19:02:57 7693

原创 关于在windows里面使用pip安装包出现的错误总结

fatal error C1083: Cannot open include file: ‘stdbool.h’: No such file or directory出现该错误的原因可能是: C:\Users\ww\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\WinSDK\Include 里面没有该c语言的...

2019-10-14 00:26:10 913

原创 Go语言基础之结构体、接口

package mainimport ( "fmt")# 定义Human类型的接口必须实现xx和toS..的方法, 否则编译失败, 这有点像抽象类的意思, 写python多了对这点不太注意。。type Human interface { xx() string toStudyKnowledge() string} # 定义一个结构体 Student , ...

2019-08-01 11:06:08 499

原创 Python三种常用的程序设计模式

一、 创建型的设计模式1、 工厂模式(Factory):解决对象创建问题2、 构造模式(Builder): 控制解决复杂对象的创建问题3、 原型模式(Prototype): 通过原型的克隆去创建新的实例4、 单例模式(Brog/Singleton): 一个类只能创建同一个对象5、 对象池模式(Pool): 预先分配同一个类型的一组实例6、 惰性计算模式(Lazy Evaluation)...

2019-07-26 19:20:22 1902

原创 巧妙使用语法实现生成器内层yield值传递

引言:笔者最近在学习协程和yield使用的相关知识和案例的情况下, 发现了yield from在python2里面是不支持的, 所以所看的论文上的yield from的使用方法在python2里面根本跑不起来.这里面无法复用原代码的让我很纠结的原因就是 迭代器函数调用send({value})这个方法的时候如果是多个yield迭代的情况下, 没办法正常的将send里面的值传递过去, 所以有了...

2019-07-19 16:03:23 525

原创 SSH (SFTP)连接

定义SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的...

2019-07-09 18:10:16 14556 1

原创 表锁还是行锁, 排它锁还是共享锁, 如何避免死锁?

由于Myisam不支持事务, 这里就不讨论这种数据库引擎了(我也没怎么用过).Innodb共享锁S:(读取)操作创建的锁。其他用户可以并发读取数据,但任何事物都不能获取数据上的排它锁,直到已释放所有共享锁。SQL语法: SELECT * FROM table_name WHERE ... LOCK IN SHARE MODE排它锁X:排它锁又称为写锁((eXclusive lock,简记为...

2019-06-27 18:49:08 3722 5

原创 利用td-agent(fluentd)和elasticsearch搭建kibana可视化日志分析平台

主机(服务端Server): elaticsearch, kibana, fluentd aggregator 安装在这台机器上IP:192.168.1.5节点机(客户端Client):Node1: IP: 192.168.1.6 Nginx ServerNodel2: IP: 192.168.1.7 django Server注意:1、2、3步服务端和客户端都要安装1. 首先安装...

2019-05-29 18:01:52 1820

原创 Python About Supervisor 日志系统(二)

超级管理工具supervisor安装supervisor的方式有很多, 如:pip install supervisoryum, apt etc.创建一个配置文件一旦你安装好supervisor以后, 运行 echo_supervisor_conf会在你的terminal里面打印一个"sample"配置文件供你查看当你看到echo给你的文件以后, 可以使用命令 echo_supervi...

2019-05-28 11:55:42 753

原创 Python About 日志系统(一)

Logging详解日志安装下面四个层次来完成日志的功能Logger是一个接口用来暴露出来给应用使用Handlers是发送日志记录(由logger创建)到规定的目的地, 如 email. etcFilters是一个过滤的机制Formatters是输入日志的格式import logging# 没有创建logger, 则默认是root logger, 直接打印在屏幕上# root l...

2019-05-28 11:12:00 371

原创 GRPC服务-跨平台调用

图示即为使用Protocol Buffers的跨平台RPC系统的使用情况.安装pip install grpciopip install grpcio-tools googleapis-common-protos使用编写protocol buffer使用GRPC首先需要做的就是设计protocolo buffer. 新建一个msg.proto文件syntax = "proto3"...

2019-04-30 18:24:57 1949

原创 各种装饰器语法糖

装饰器测试def ppp(a): def foo(c, d): a(c, d) print a, c, d return foo@pppdef test(c, d): print '难舍难分'test('弟弟', '哥哥') # 这里调用才会执行, 且 装饰器上的 a -> func c,d对应参数def ppp1(...

2019-04-24 15:48:00 399

原创 GoLand Jetbrain工具使用

运行main出错。go install runtime/internal/sys: mkdir /usr/lib/go/pkg/linux_386: permission denied解决办法:key: 出现上述问题的原因是权限问题, 使用goland去编译执行.go文件的时候会创建文件, 所以需要下列命令ls $(go env GOROOT)/pkg && sudo ch...

2019-04-24 15:44:45 1291

原创 进程管理工具Supervisor使用说明

背景:项目中遇到有些脚本需要通过后台进程运行, 保证不被异常中断, 之前都是通过nohup、&、screen来实现, 在基于可以实现start/stop/restart/reload的服务后,出现了Supervisor。Supervisor是用Python开发的一套通用的进程管理程序, 能降一个普通的命令行进程变为后台daemon, 并监控进程状态, 异常退出时能自动重启。它是通过fo...

2019-02-28 14:53:46 201

原创 在Pypi上发布自己的Python包

使用过Python编程都知道, Python安装都是可以使用pip安装搞定:sudo pip install <package name>那么如何发布一个自己的pypi Python包呢.首先安装一个setuptoolssudo pip install setuptools第一步, 就是到pypi上注册自己的用户, 点击"Register", 填写自己的用户名, 密...

2019-01-29 14:59:59 1199

原创 MySql 索引的命中规则

在解释索引命中规则的前提下, 先了解一下如下原则:最左匹配原则:最左前缀匹配原则, mysql会一只向右匹配直到遇到范围查询(>, <, between, like)就停止匹配, 比如a=1 and b=2 and c>3 and d=4 如果建立了(a,b,c,d)顺序的索引, d是用不到索引的, 如果建立(a,b,d,c)的索引, 则都可以使用到, a,b,d的顺序可以...

2019-01-24 17:02:04 9539 4

原创 关于 requests-futures 的中文描述

安装: sudo pip install requests-futures具体详情请点击 官方网站项目描述(Project description)为使用者提供的异步 python HTTP请求这是一个 python 请求 http库的小插件, 使用的是python3.2的concurrent.futures或backport, 用于python的早期的版本.代码部分: pytho...

2019-01-24 15:20:35 1270

转载 Python实现微信小程序用户登录, 模板推送

Python 实现微信小程序的用户登录小程序可以通过官方提供的登录邓丽来获取用户身份的标示, 具体文档可以参考 官方文档, 通过流程时序可以看到, 对于需要和前端配合的服务端开发, 主要实现的就是通过小程序提供的 code 换取用户的 openid 和 session_key, 并用换取到的 openid 和 secret_key 作为自定义的登录态. 分析后得知, 作为小程序后端的开发, 主要...

2019-01-23 17:21:01 7552 3

原创 Linux(Ubuntu)上的定制定时任务Crontab

1.Python模块导入的搜索路径在linux环境下应该全力去避免在路径中出现中文字符, 这可能会导致无法搜索到模块.2.为Python添加模块加载路径的方法:`方法1:函数添加`import syssys.path>>>sys.path.append("/home/ww/int&qu

2018-10-22 17:00:47 383

原创 使用alembic进行数据库版本管理

Alembic简介:SQLAlchemy是一款非常优秀的ORM框架, 但是本身没有戴数据库版本控制功能, 这很不方便, 进行开发过程中难免修改数据模型, 添加一个表, 修改一个字段, 都需要手动修改就比较费事. 在这里介绍一款SQLAlchemy作者写的数据库版本控制工具–Alembic. 另外还有一个工具叫做AQLAlchemy-Migrate, 在使用过程中感觉Alembic更为灵活....

2018-09-11 14:41:02 733

原创 Marshmallow内建函数Validator

Validator各种类型数据的验证类。class marshmallow.validate.ContainsOnly成功的验证器if value是一个序列,序列中的每个元素也在传递的序列中choices。空输入被认为有效。参数: 选择(可迭代) - 与...相同OneOf。标签(可迭代) - 与...相同OneOf。错误(str) - 与...相同OneOf。...

2018-09-06 17:24:42 1466

原创 全面解读Marshmallow

marshmallow是一个用来将复杂的orm对象与python原生数据类型之间相互转换的库,简而言之,就是实现object -> dict, objects -> list, string -> dict 和 string -> list。要用到marshmallow, 首先需要一个用于序列化和反序列化的类:import datetime as dtcla...

2018-09-06 16:58:20 15715 2

原创 SQLAlchemy的两种操作数据库的方式

工作需要, 用到了SQLAlchemy, 经过了差不多一个月的学习和探索, 整理如下: SQLAlchemy有两种操作数据库的方式, 一种是session-mapper的方式, 统称为ORM, 另外一种就是有点像原生的sql语句, 称之为core方式.首先来看第一种方式: ORM(session-mapper)from sqlalchemy import create_engine...

2018-08-31 18:12:09 2516

原创 Postman中POST方式使用form-data和raw作为body发起请求理解

测试服务器选择的是Python的tornado作为Web服务器1. 首先是raw方式提交的POST请求:在这里请求提交以后, 可以从服务器端进行一个调试在这里可以看见, 利用raw作为body进行POST请求的时候, 请求的参数只能通过self.request.body获取到的.通过这个参数获取到的是一个字符串, 通过json.loads(self.request.b...

2018-08-30 11:27:50 157225 19

原创 关于元组拆包, 具名元组,乘等于在可变和不可变序列上的作用

用 * 运算符把一个可迭代对象拆开作为函数的参数:divmod(20, 8)4t = (20, 8)divmod(*t)4quotient, remainder = divmod(*t)quotient, remainder4)下面是另一个例子,这里元组拆包的用法则是让一个函数可以用元组的形式返回多个值,然 后调用函数的代码就能轻松地接受这些返回值。比如 os.path...

2018-08-24 10:06:36 284

转载 Redis的优缺点和使用场景

1. 使用redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)(2) 支持丰富数据类型,支持string,list,set,sorted set,hash(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行(4) 丰富的特性:可用于缓存,消息,按key设置过期...

2018-07-25 22:49:01 2008

原创 关于Docker安装与操作

Docker 是一个为开发者和系统管理员在容器中开发、部署和运行的平台。灵活、轻量级、可互换、部署简单、扩展性强Docker的应用场景Web 应用的自动化打包和发布。自动化测试和持续集成、发布。镜像Image和容器Container容器是运行镜像后产生的镜像是一个包含所有需要运行的文件组成的包,比如代码、可运行文件、库、环境变量和配置文件等。镜像是容器运行的一...

2018-07-17 19:41:37 170

原创 关于Celery - 分布式任务队列

Celery 是 Distributed Task Queue,分布式任务队列,分布式决定了可以有多个 worker 的存在,队列表示其是异步操作,即存在一个产生任务提出需求的工头,和一群等着被分配工作的码农。在 Python 中定义 Celery 的时候,我们要引入 Broker,中文翻译过来就是“中间人”的意思,在这里 Broker 起到一个中间人的角色。在工头提出任务的时候,把所有的任务...

2018-07-16 18:36:41 443

转载 Django中使用Redis保存session的方法

安装包pip install django-redis-sessions==0.5.6修改settings文件,加入以下代码# 使用redis保存session数据SESSION_ENGINE = 'redis_sessions.session'SESSION_REDIS_HOST = 'localhost' SESSION_REDIS_PORT = 6...

2018-07-15 21:59:50 4030 1

原创 在扑克牌游戏中, 需要实现一个查找顺子的算法

A: 在扑克牌游戏中, 需要实现一个查找顺子的算法:(连续的数字即为顺子), 随机发N张牌, 从中挑出最长的顺子, 并返回其长度, 如果没有顺子返回0. 现在手上的牌为[12,3,4,10,6,5,6,8,11,9,11,11,9,12,1].# 1.去重,排序m= [12,3,4,10,6,5,6,8,11,9,11,11,9,12,1]m.sort()s = set(m)m1 =...

2018-07-15 18:46:02 4148

转载 Python单例模式的实现

方法一:使用装饰器装饰器维护一个字典对象instances,缓存了所有单例类,只要单例不存在则创建,已经存在直接返回该实例对象。def singleton(cls): instances = {} def wrapper(*args, **kwargs): if cls not in instances: instances[c...

2018-07-15 17:31:38 884

原创 谈谈__new__与__init__的区别

__new__是Python面向对象语言中一个很少用的函数,更多使用的是__init__这个函数class Book(object): def __new__(cls, title): print('__new__') cls.m = 2 print(super().__new__(cls)) return super()...

2018-07-14 22:52:48 1944

原创 Python实现同城聊天

服务端from socket import socket, AF_INET, SOCK_STREAMfrom threading import Thread# 创建套接字对象, 使用ipv4, 基于TCP协议的SOCK_STREAM, 如果是UDP 使用SOCK_DGRAMserver = socket(AF_INET, SOCK_STREAM)# 绑定IP地址和端口, 使服务器工...

2018-07-14 15:12:34 521

转载 解决pycharm运行/敲代码过程中很卡的问题

1. 现在的电脑标配都8G以上内存了,不过很多IDE仍然是以低配电脑为标准,去配置软件占用硬件的程度因为内存会直接影响到软件的性能,可以通过手动去设置大内存 如何操作? 点我吧...

2018-07-08 18:04:32 27123

原创 【Django】template中实现加减乘除数学运算

前言 django模板只提供了加法的filter,没有提供专门的乘法和除法运算; django提供了widthratio的tag用来计算比率,可以变相用于乘法和除法的计算。# 加法{{value|add:10}}note:value=5,则结果返回15减法{{value|add:-10}}note:value=5,则结果返回-5,加一个负数就是减法了乘法{% widt...

2018-07-06 18:02:33 4297

原创 Django查看执行的sql语句

>>> from core.models import Province>>> from django.db import connection>>> p = Province(name=u'河南', code='0371')&

2018-07-06 11:37:05 1559

原创 python编码与反编码

如:‘\u53eb\u6211’,进行反编码后得到其对应的汉字。s = "\u6d59\u6c5f\u7701\u6e29\u5dde\u5e02\u7535\u4fe1"# 解码之前先进行编码, 注意上面的编码类型像 \u1231 这种的是 unicode-escape 类型s = s.encode('unicode-escape')s = s.decode('unicode-es...

2018-07-01 22:06:55 1074

空空如也

空空如也

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

TA关注的人

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