自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 问答 (2)
  • 收藏
  • 关注

转载 为什么有这么多 Python?

通俗易懂,对Python的各种版本区别有了一定了解。 转自: http://www.open-open.com/lib/view/open1380418623307.html https://www.toptal.com/python/why-are-there-so-many-pythons Python是出类拔萃的然而,这是一句非常模棱两可的话。这里的”Python”到底指的是什么? 是

2016-08-20 14:15:38 550

原创 Mysql优化

在现在的后台开发中,磁盘往往成为了运行瓶颈,而对于大部分应用而言,数据库就是最大的瓶颈。下面列一些mysql的优化点。使用ORM,使用ORM不仅仅防止SQL注入,提供操作便利,方便数据库切换等;同时大部分程序员也不会比ORM里面写的SQL语句更好。为经常用来做搜索的字段建立索引,但不要为太多字段建立索引,因为插入,删除,甚至update索引字段都会导致对索引的操作,这时会影响数据库的操作速度。

2016-07-23 16:10:04 465

转载 mysql的分区技术

一、概述 当 MySQL的总记录数超过了100万后,会出现性能的大幅度下降吗?答案是肯定的,但是,性能下降>的比率不一而同,要看系统的架构、应用程序、还有>包括索引、服务器硬件等多种因素而定。当有网友问我这个问题的时候,我最常见的回答>就是:分表,可以根据id区间或者时间先后顺序等多种规则来分表。分表很容易,然而由此所带来的应用程序甚至是架构方面的改动工作却不>容小觑,还包括将来的扩展性等。在以前

2016-07-23 15:42:18 354

原创 Linux上几个可以影响到服务器并发处理性能的系统参数

1. 打开文件数量限制 系统总共可以打开的文件数 因为服务器的资源是有限的,所以Linux对打开的文件数做了限制;包括系统总共可以打开的文件数,单个用户/组别可以打开的文件数,单个进程可以打开的文件数等 对于系统总共可以打开的文件数,应该是系统根据系统硬件资源自动计算出来的,查看几个系统值都很大,一般不需要我们操心了,如果实在要改,请在/etc/sysctl.conf文件下面加上:

2016-07-21 14:49:28 3323

转载 LINUX系统监视——/proc文件系统(文件夹)

在Linux中有额外的机制可以为内核和内核模块将信息发送给进程 – /proc 文件系统。最初设计的目的是允许更方便的对进程信息进行访问(因此得名),现在它被每一个有有趣的东西报告的内核使用,例如 /proc/modules 有模块的列表 /proc/meminfo 有内存使用的统计表。  使用proc 文件系统的方法和使用设备驱动程序非常相似–创建一个 /proc 文件需要的所有信息的结构,包括任

2016-07-21 09:40:33 1796

原创 mongodb find语法记录

collection users 原始数据{ "_id" : 1.0, "name" : "sue", "age" : 19.0, "type" : 1.0, "status" : "P", "favorites" : { "artist" : "Picasso", "food" : "pizza"

2016-07-08 17:31:43 873

原创 mongo-pymongo 数组操作

因为刚刚开始使用mongodb时时间比较急,没有比较系统的去学习文档,所以当时在对数组操作时都是自己写代码去操作,所以专门把数组操作单独记录下来 https://docs.mongodb.com/manual/tutorial/query-documents/#read-operations-arrays 插入测试数据db.users.insert( [ { _id:

2016-07-08 16:29:01 4641

原创 Python包安装小技巧

Python windows库 我们的工作环境大多还是在windows平台,但是Python的很多第三方库在windows下并没有正式的安装文件,这时使用下面网站的库可以给我们节省不少时间: http://www.lfd.uci.edu/~gohlke/pythonlibs/ 应该说很少是没有的了;记住在windows上Python最好安装32位版本,因为很多库在windows上只提供了32

2016-07-06 22:20:04 468

转载 浅谈数据库的水平拆分

转自: http://dryr.blog.163.com/blog/static/582110132010422115946413/ 一般人们分析问题,总是从问题现象,原因分析,解决方案这样的思路来分析思考问题,我想对这个数据库的水平拆分也按这样的思路来简单剖析一下。 先从问题现象入手,随着数据库表中数据日积月累越来越多,当表记录数达到千万甚至亿级别时,数据库表的访问效率下降明显

2016-06-28 21:40:19 1868

转载 mysql 主键选择

转载:http://www.cnblogs.com/chutianyao/archive/2012/11/04/2753995.html (针对InnoDB引擎)我们实际生产环境可能会使用四类属性作为主键:(1). 自增序列;(2). UUID()函数生成的随机值;(3). 用户注册的唯一性帐号名称,字符串类型,一般长度为:40个字符;(4). 基于一套机制生成类似自增的值,比如序列生成器;那么我

2016-06-28 21:32:07 5069

原创 Python with语句及context manager

with语句是对context manager(上下文管理者,以下简称CM)方法的包装,适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。with_item ::= expression ["as" target] with-bodywith open(‘x.txt’, mode=’w+’)

2016-06-26 17:16:45 532

转载 Python-装饰器;Decorator模式

直接转载一篇吧,够详细。具体的链接没有留下来….这是在Python学习小组上介绍的内容,现学现卖、多练习是好的学习方式。 第一步:最简单的函数,准备附加额外功能# -*- coding:gbk -*-'''示例1: 最简单的函数,表示调用了两次'''def myfunc(): print("myfunc() called.")myfunc()myfunc()第二步:使用装饰函数在函数执

2016-06-26 17:13:42 410

原创 Python的线程/进程间通讯对象分析

Python提供了一系列的对象支持线程/进程间的通讯:LockRLockConditionSemaphoneBounderSemaphoneEventBarrier除了Lock,Rlock外,进程的相关对象只是线程相关对象的clone,而且进程的Lock,RLock也是与线程Lock,RLock相对应的对象。在这里我们只分析线程的这几种对象。 一般使用范围:Lock用于对互斥操作(

2016-06-26 15:49:08 2295

原创 Tornado源码分析1-Configurable

class Configurable(object): “”“Base class for configurable interfaces.A configurable interface is an (abstract) class whose constructoracts as a factory function for one of its implementation

2016-06-25 10:09:58 606

原创 Python的图片处理-待续

说到Python的图片处理必须要用到大名鼎鼎的PIL(Python Imaging Library)了,不过此项目现在似乎已经停止,在PYPI上搜索居然可以导致错误… 而Pillow则是PIL的一个兼容库,目前一直保持更新。没有怎么处理过图片,就着可能的需求先记录下使用吧 1. 将一张图片替换到另外一张图片的某个位置:from PIL import Imageim = Image.open(r'C

2016-06-24 17:37:48 428

原创 Python 客制化类的创建过程

Python类的创建过程比较复杂,我们一步步来进行分析。 首先,从实现一个Singleton做起,先看下面的代码import copyclass Singleton: def __new__(cls, *args, **kwargs): print("In Singleton __new__") if not cls._instance:

2016-06-24 16:44:23 457

原创 nginx的安装及基本配置,及多个域名服务

centos6.x yum默认没有nginx的软件包 安装方式: 到nginx下载页面http://nginx.org/en/linux_packages.html#stable,复制CENTOS 6的nginx软件源安装包 运行命令:wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6

2016-06-24 16:34:49 5381

原创 Python的多线程/多进程

Python的线程使用方式跟进程的使用方式类似,这里通过线程来演示。 存在两种产生线程的方式 1. 直接使用Thread 2. 继承Thread 直接使用Thread的方式:def func(): print('Thread start') print('Thread end')if __name__ == '__main__': t = Thread(target=

2016-06-24 16:23:58 369

原创 Python的method, class method, static method

method是类的成员函数,必须由类的实例来调用,可以访问类的实例,第一个参数默认是实例。 class method可以由类,类的实例来调用,但第一个参数默认是类 static method可以由类,类的实例来调用,没有默认参数

2016-06-24 14:46:45 471

原创 yield,generator type

yield语句只用于定义generator函数,调用generator函数会返回一个geneator对象g; 可以通过调用g的方法控制g的运行 generator内部的变量及调用栈等都可以在generator的运行/挂起过程中得到保存,这个特性跟corountine很像,实际上像Tornado等也是利用yield,异步IO等实现的协程。

2016-06-24 14:44:43 499

原创 Python限制函数运行时间,记录函数运行时间的装饰器

平时会碰到一些实时项目,有些函数必须要在某一时限完成,所以必须要加入一些手段去监控函数的运行时间,下面的装饰器time_limit提供了这么一个功能,如果函数未能在规定时间内完成,则会抛出TimeoutError。 log_time_delta可以对函数运行时间进行一个记录。from functools import wrapsfrom threading import Timerimport

2016-06-24 13:59:03 8237 4

原创 assignment,shallow copy,deep copy,引用,不可变对象

要了解assignment,shallow copy,deep copy这3个概念,就必须明白Python的所有变量都只是引用。引用比如 i =1; ii=i; iii=ii; >>> for x in i, ii, iii:... id(x) # id是Python中类似于获取对象内存地址的函数... 143103227214310322721

2016-05-20 21:06:47 409

原创 自动生成Sqlalchemy的models文件

自动生成Sqlalchemy的models文件的包早用过了,今天维护一个较老的工程,有个字段类型做了改动,调了得10几分钟才搞定。记录下自动生成models文件的python包sqlacodegen sqlacodegen已经加入pypi,只需要使用pip install sqlacodegen就可以安装了 安装后即可运行命令生成models.py文件了 假设数据库连接字符串是: mysql:

2015-06-25 17:31:29 9414 3

原创 设计模式 Template模式

在面向对象系统的分析与设计过程中经常会遇到这样一种情况: 一个流程可以分为A,B,C….多个步骤,但在具体的步骤中可能会有不同的情况出现,这时就Template模式就非常有用:class P(object): def a(): pass def b(): pass def operate(): a() b()cla

2015-06-06 20:07:58 415

原创 用Beyond Compare 4比较excel,word,图片,以及在

BC应该算是编程必备软件之一了,或者说比较软件是编程必备软件了,而BC是个人认为最好的比较软件。今天正好一个老同事过来问怎么比较excel,就记录下使用方式。在BC3时代,word,excel都是不能直接比较的,需要下载相关插件;而BC4可以直接比较word,excel采用下图的比较方式也可以直接比较:PS: 一般新建的word是可以支持的,如果从其他地方导出的不好说;exce

2015-06-03 15:54:19 4931

原创 设计模式之Facade,Adapter, Proxy

Facade,Adapter,Proxy模式有点类似,功能上都是对调用者提供调用接口,但他们的目的就有些不同。最近正在做一个域名系统,其中就用到了Facade和Adapter模式。正好结合项目来分析下这几种设计模式的不同。Adapter是为了保持已有接口的不变性,而不管调用模块或者层次间代码的变化。因为需求及性能等的不同考虑,我们的DNS服务器即有传统的较高性能的BIND,又有性能较低

2015-05-30 09:35:33 1481

原创 去年的Python工程师面试题

这是一年前应聘一家游戏公司后台Python工程师的笔试题,由对方发给我,我在当晚花了几个小时查资料做的。那会对Python基本就属于有点基础语法的认识,发在百度文库居然浏览量-下载量=1,发在blog里面show下。黑颜色以外的部分以及所有答案是我回答的。[讲解]什么是 lambda函数?它有什么好处?另外 python在函数式编程方面提供了些什么函数和语法

2015-05-25 16:00:56 1099

原创 设计模式-Prototype

原型也是一种创建型模式,考虑下面的场景: 一个类有1,2,3,4,5,6,7,8种状态,在运行过程中经过了以下1->2->3->4的状态转换,且进入到状态4时必须要经过1,2,3的状态转换。 在进入状态4后,可以向5,6,7,8状态转换。 此时要对此对象做白盒测试,1->4是一个固定的流程,很显然,从一个状态已经到4的对象开始复制一堆对象开始去做测试比new一堆对象再分别切换到5,6,7,8要

2015-05-24 21:07:25 441

原创 设计模式-Builder模式

GoF对Builder模式的定义是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。如果只看这句话很好理解,因为对于很多对象而言都有这个需求,你需要逐步构建一个复杂对象。但同时也是我很不理解的一个模式,因为看书或者一些BLOG都会有提到Director这个角色,而且例子中无一例外都是下面的样式class Director() {void Contract

2015-05-24 15:18:19 370

原创 设计模式-AbstractFactory

回想工厂方法模式,http://blog.csdn.net/caoxing81/article/details/45873605,大厅可能有多种风格, A和B的Widget也可能是不同组别不同人进行开发。这种情况下一个工厂类显然对代码结构,程序可维护性有影响。 我们可以创建多个WidgetFactory分别生成A,B类的Widget。 abstractfactory.h#ifndef ABST

2015-05-22 17:16:09 388

原创 设计模式-Factory

有一定编程经验的XDJM对工厂方法模式肯定不会陌生了,曾经做过一个游戏大厅,那会的Qt还没有QML这个东东,为了能够动态的加载页面以及更加方便的调试。每一个Window都是使用一个XML去定义,里面按照树状结构定义了各种类型的控件。每个控件都是Widget的父类,Window在加载界面时显然并不方便去创建每个具体的Widget类,这时我们只需要创建一个Factory类,来处理相关的工作即可。 程序

2015-05-20 17:44:48 481

原创 设计模式-Singleton

Singleton算是知道的设计模式中最简单的最方便实现的了,模式实现了对于类提供唯一实例的方法,在很多系统中都会用到此模式。在实际项目中使用全局变量,或者静态函数等方式也可以达到这种目的。但是也会有些问题,比如不符合OO的原则,或者在Java中也不能使用全局变量等问题,所以掌握此类模式的标准实现还是有一定意义的。 设想一个权限管理类,根据用户名,IP等实现对用户会话,权限等的管理,此类在系统中应

2015-05-20 17:17:18 420

原创 CentOS Python环境配置

公司切换服务器到CentOS 6.5,超级菜鸟一个,很辛苦终于配置好了Python相关环境默认服务器Python环境是2.6.6,一看啥也不说,到Python官网下载了Python2.7.9源码版,再把Python指向了新安装的Python版本。结果发现yum运行不了。网上查了查,应该是CentOS自己的Python环境有yum相关的模块,而2.7.9没有相关模块了。把最终正确的相关过程记

2015-03-28 14:29:11 2839

原创 一次BIND DLZ服务器的调优

公司需要建立个非传统的DNS服务器,目前的数据已经1000W+,如果业务发展OK,后续可能会爆炸式增长。采用的是BIND DLZ+MYSQL,因为是第一次安装此类型服务器,所有配置都是按照网上教程配置,为host建立了索引,同时还建立了分区存储,按理说1000W+的数据查询应该很快,在数据库中直接查询也是非常快。但是测试DNS返回一般要3S以致更多。跑到官网http://bin

2015-03-13 10:57:48 2139 1

原创 使用flask mail发送mail

参考: http://pythonhosted.org/Flask-Mail/ 使用pip安装插件: pip install Flask-Mail 在flask程序的config.cfg中加入以下内容,根据你邮件客户端的配置或者邮箱服务商提供的帮助文档即可: MAIL_SERVER = ‘mail.example.cn’ MAIL_PORT = 465 MAIL_USE_SSL = Tr

2015-03-10 19:52:44 1260

转载 MyISAM 和 InnoDB 讲解

MyISAM 和 InnoDB 讲解    转自: http://www.php100.com/html/webkaifa/database/Mysql/2011/0326/7789.html  InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持

2015-03-09 15:29:55 365

原创 如何在python中为类加入索引器[]

数据库中有张表parameters_table,里面记录的是产品的一些配置及可能动态变化的信息,实现索引器当然是操作此类表的最好方法class ParameterTables(Base): __tablename__ = 'parameters_table' id = Column(Integer, primary_key=True, autoincrement=True)

2015-02-27 20:13:23 3743

转载 欢迎使用CSDN-markdown编辑器

第一次使用markdown本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I - 引用Ctrl + Q

2015-02-27 19:57:35 304

原创 Ubuntu下安装Apache及网站基本配置+CI框架基本配置

公司官网是外包给其他公司,公司组织架构变化后服务器不能再使用,需要在新服务器上进行安装配置官网,于是我这个完全不懂PHP的就光荣接手此任务。手上只有网站代码,原有服务器不能访问,所以从网上找了些内容,但每一个都有这样那样的一点点问题。于是把自己的配置过程记录下来。1.安装apache2sudo apt-get install apache2 2.安装phpsudo apt-

2015-02-25 20:23:26 936

转载 python __init__.py

好歹也做了十几天的tornado,flask开发,怎么能不懂__init__.py转自: http://www.cnpythoner.com/post/2.htmlpython中的Module是比较重要的概念。常见的情况是,事先写好一个.py文 件,在另一个文件中需要import时,将事先写好的.py文件拷贝 到当前目录,或者是在sys.path中增加事先写好的.py文件所在的

2015-01-30 13:35:51 470

空空如也

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

TA关注的人

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