自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天行健

君子以自强不息

  • 博客(33)
  • 问答 (1)
  • 收藏
  • 关注

原创 Golang 加权随机数

什么是加权随机数所谓加权随机数,即是在随机数的基础上进行加权,每个元素的出现概率不是均等的。例如{'a': 2, 'b': 3, 'c': 5}, 那么a 出现的概率为20%,b出现的概率为30%, c 出现的概率为50%。为什么需要加权随机数对我而言,主要应用于一些线上抽奖活动,每个奖品出现的概率不能是均等的。所以要加权。Golang 的支持在github 搜索了一下,发现了有一个包。https://github.com/mroth/weightedrand地址是这个。源码非常的精短.

2020-05-21 22:27:38 2645

原创 python3.4 TypeError: unsupported operand type(s) for %: 'bytes' and 'int'

b'-0x%012x\x00' % 123 在python 3.4 中以上代码运行会报错,在python 3.5之后则不会。如果在python 3.4 中 需要对一个int 类型进行转换,可以参考以下过程a = '-0x%012x\x00' % 123a= bytes(ar_next_scn, 'utf-8') ...

2018-12-03 18:35:36 4706

原创 错误InterfaceError (0, '') 以及解决

最近在项目在使用peewee 的时候遇到该错误,于是上网搜了下对应的错误:https://stackoverflow.com/questions/6650940/interfaceerror-0都是说因为关闭了连接对象然后继续去操作数据库。因为peewe使用的是pymysql作为连接,查看了一下源码,做了个小实验。import pymysql.cursors# Connect t...

2018-08-11 16:15:36 10451

原创 使用peewee_migrate来进行数据库结构的自动迁移

因为工作需要,使用的orm工具为peewee。peewee号称轻量级的orm,果然不假,核心代码就四千多行,也满足了工作的基本要求。可是peewee不像SQLAlchemy有alembic或者Django有South,peewee没有自动对数据库进行DDL语句升级的工具。其在playhouse自带了一个手动的migrator,留着以后扩展用的。但身为程序员怎么能忍受手动的事情能,本着能躺着就不坐着

2017-03-12 22:08:59 5546 4

原创 解决fabric安装时候的依赖

使用pip安装fabric的时候总会报错,是因为依赖没有准备好,现在总结如下:yum install gcc libffi-devel python-devel openssl-devel -y

2016-12-10 20:42:29 2500

原创 使用fabric来验证linux账户

验证linux用户,python有自带的包python-pam,用法简单,但是有个问题就是无法验证root的用户,所以只能用fabric来代替,当然用fabric来验证的必须保证对方ssh已经打打开了,不然无法验证,闲话少说,代码如下。from fabric.api import env, run, warn_onlyfrom fabric.state import connections

2016-12-10 20:39:56 701

转载 linux 下安装MySQLdb

sudo yum -y install mysql-pythonsudo yum -y install mysql-develpip install mysql-python

2016-11-16 23:12:26 457

原创 python装饰器的理解

python的语法很简单,但也有一些会让初学者困惑的东西,比如说装饰器,就困惑了我一段事件。现在对python逐步熟悉后,返回来谈谈对装饰器的理解吧。        关于装饰器解释:增加一个函数的的功能,但又不更改这个函数的内容的方式,称之为“装饰器”(Decorator),初读非常拗口难懂,可是当你真正了解后,才发现他是最好的解读。然后我们需要知道的是在python中函数是可以嵌套函数,并且

2016-11-11 12:43:54 1613

转载 vim 复制和粘贴

下面是vim复制粘贴的基本命令:yy复制游标所在行整行。或大写一个Y。 2yy或y2y复制两行。 ㄟ ,请举一反三好不好! :-) y^复制至行首,或y0。不含游标所在处字元。 y$复制至行尾。含游标所在处字元。 yw复制一个word。 y2w复制两个字(单词)。 yG复制至档尾。 y1G复制至档首。 p小写p代表贴至游标后(下)。 P大写P代表贴至游标前(

2016-11-08 21:48:19 319

原创 flask源代码--routing路由管理

flask的路由管理主要是依赖于werkzeug.routing的Map和Rule。所以想要理解flask路由管理就要知道这两个东西是怎么操作的。self.url_map = Map([ Rule('/', endpoint='new_url'), Rule('/', endpoint='follow_short_link'), Rule('/+', endpoint=

2016-10-18 22:57:55 1895

原创 win7下centOS7的安装和无线上网设置(博通驱动)

前几天因为学习linux系统的需要,又因为虚拟机太卡了,所以在win7的系统下安装centOS7双系统。当然网上该有的坑都遇到过了。比起ubuntu,centOS7 安装还比较顺利,只要你能成功安装就不会像ubuntu那样安装完毕后找不到linux内核。具体安装过程可以看这篇博客。        一开始会看到,安装的界面,如果回车后有错误信息提示,无法进入到图形界面按住行,可以参考刚刚那篇博客

2016-09-13 21:02:55 1343

原创 python 类的实例方法,静态方法,类方法辨析和实例讲解

我们知道在python的类里面可以定义三种类型的方法:class A(object): # 实例方法  def foo(self,x): print "executing foo(%s,%s)"%(self,x) # 类方法 @classmethod def class_foo(cls,x): print "executi

2016-09-03 18:09:58 5050

原创 flask框架的参数传递以及MVC模式的图解

初学flask的时候,一开始还好,只在一个文本内写个"Hello Word!"。到了后面写博客的时候,就开始非常困惑了,尤其是jinjia2的使用,各种参数不知道是怎样的传入,当然后面逐渐熟悉后才慢慢了解到这就是传说中的MVC模式。今天,重新看了下廖雪峰的官方网站,发现他的一张图总结的非常好,所以就借用一下。上图:

2016-09-01 22:40:56 11156

原创 在flask实现CKEditor和在网页上显示图片

在自己制作的网页上想实现富文本功能,于是上网搜了一下看到了CKEditor,实现比较简单,可以参照CKEditor ,具体实现的话可以参考David-Guo。    实现完后,进行上传图片,然后post,可是在页面中没有显示图片。这可就纳闷了。接着我查看了一下数据库发现在body_html这一栏只有,为了保护网站,在models处设置了检测用户输入,如果有html标签者只保留我设置好的标签,所

2016-08-31 17:45:26 3101

原创 .format(x=modname), ExtDeprecationWarning的原因

最近用flask发现老是出现: .format(x=modname), ExtDeprecationWarningC:\Users\Administrator\version\lib\site-packages\flask\exthook.py:71: ExtDeprecationWarning: Importing flask.ext.moment is deprecated, use

2016-08-30 19:56:18 1881

原创 使用flask-avatar生成博客头像

因为gravatar被墙的的原因,所以找来flask-avatar来做替代品,虽然生成头像没有gravatar好看,但是也就先用着吧。    使用非常简单,只要三行代码。from flask_avatar import Avatar[...]Avatar(app)Templates:可以设置大小参数:生成效果图:

2016-08-29 18:04:15 2050

原创 爬虫爬取糗事百科

在静觅网站学了一下爬虫,自己也按照作者的思路写一下糗事百科的爬取。当中也学习了BeautifulSoap,也用它来练习替代正则表达式,发现还是原来的正则表达式简介,所以还是贴上用正则表达式写的爬虫吧。# -*- coding:utf-8 -*-import urllib2import reclass QIUSHI(object): def __init__(self):

2016-08-21 21:20:01 579

原创 werkzeug.utils.import_string的用处

def from_object(self, obj): if isinstance(obj, string_types):  obj = import_string(obj)  for key in dir(obj):    if key.isupper():    self[key] = getattr(obj, key)    在flask

2016-08-19 22:39:10 3403

原创 flask web开发中config文件中init_app函数的作用

在flask web 开发这本书中,进行大型网页设置的时候,在config文件中定义了一个这样的函数:@staticmethod def init_app(app): pass    当时没有多想,反正就是一个空函数,可是到后面,十七章的时候又出现了这样的情况:class ProductionConfig(Config): SQLALCHEM

2016-08-19 21:07:30 6988 1

原创 python线程池实现bug的修改

由于想了解python线程池的实现,在网上搜了一下,其中http://www.cnblogs.com/goodhacker/p/3359985.html,里面的线程池例子非常不错,但是因为其里面线程进行资源竞争导致会出现下面的情况:打印出来的格式非常混乱,经过修改后,则可以变成如下的格式了:修改代码部分如下所示:# 具体要做的任务def do_job(ar

2016-08-01 20:10:14 433

原创 python核心编程二十章例题asvcgi.py中的错误与修改

在python核心编程例题20.8中,按照作者代码是无法正常运行的,需要修改一下代码。主要是15行修改一下,48-51行添加四段代码。修改后代码如下:#!/usr/bin/env python# -*- coding:utf-8from cgi import FieldStoragefrom os import environfrom cStringIO import StringIO

2016-07-27 12:21:25 567

原创 python核心编程十五章练习

15-1import repattern = re.compile('([bh][aui]t )+')match = re.match(pattern, 'bat bit but hat hit hut ')print match.group()15-2import repattern = re.compile('\w+\s\w+')match = re.match(p

2016-07-24 23:00:45 528

原创 python核心编程十四章练习

14-3fn = raw_input('$py:')execfile(fn)14-4import osfrom subprocess import callos.system('dir')call('dir', shell=True)14-5from commands import getoutput output = getoutput('ls'

2016-07-24 22:57:11 282

原创 python核心编程十三章练习

13-2#!/user/bin/env python# -*- coding:utf-8 class MoneyFmt(object): '''把函数dollarize转换为一个类,并且包含以下的五个方法''' def __init__(self, value=0.0, default='-'): self.value = float(value)

2016-07-24 22:46:22 1002

原创 python核心编程第十一章练习

11-4def time_in_minues(minues): print '%d minues' % minues def minues2h_and_m(): minue = minues % 60 hours = minues // 60 return '%d : %d' % (hours, minue) return

2016-07-24 22:33:59 555

原创 python核心编程第十章练习

10-6def safe_open(filename, mode): try: f = open(filename, mode) except IOError: f = None return fsafe_open('10-6test.txt', 'w')safe_open('10-6test', 'w')10-8ef safe

2016-07-24 21:23:16 400

原创 python核心编程第九章练习

9-2#!/user/bin/env python# -*- coding:utf-8 -*-F = raw_input('Enter a filename ')N = int(raw_input('Enter lines to display '))filename = file(F, 'r')for eachLine in filename: if N != 0:

2016-07-24 21:04:42 427

原创 python核心编程第八章练习

8-2f = int(raw_input('from: '))t = int(raw_input('to: ')) i = int(raw_input('increment: '))for n8-4def isprime(num): for i in range(2, num): if num % i == 0: return False return True

2016-07-24 19:41:14 457

原创 python核心编程第七章练习

7-3(a)dic = {'Jack': 'man', 'Amy': 'woman', 'Lorry': 'woman', 'Json': 'man'}print sorted(dic)7-3(b)dic = {'Jack': 'man', 'Amy': 'woman', 'Lorry': 'woman', 'Json': 'man'}for key in sorted(dic):

2016-07-24 19:30:57 393

原创 python核心编程第六章练习

#!/user/bin/env python# -*- coding:utf-8 -*-def findchr(string, char): '''(a)创建一个叫findchar()的函数,查找字符char是否在string中,找到就返回该值的索引,否则返回-1。''' if char in string: y = 0 char_lens = len(char) stri

2016-07-23 23:22:38 405

原创 python核心编程第五章练习

5-3.Standard Type Operators。def get_letter_grade(score): if score >0 and score <100: if score >=90: return 'A' elif score >=80: return 'B' elif score >=70: return 'C' elif score >=

2016-07-23 22:58:44 466

原创 安装和使用MySQL的过程遇到问题和解决的方法

问题:在powershell下用easy_install来安装MY-SQL-python无法安装成功,错误信息为:            No local packages or download links found for MySQL-python            error: Could not find suitable distribution for Requireme

2016-02-21 14:49:05 5951 1

原创 python study note

import mystuffmystuff.apple()print mystuff.tangerinemystuff['apple'] # get apple from dictmystuff.apple() # get apple from the modulemystuff.tangerine # same thing, it's just a variable

2016-01-30 22:50:10 280

空空如也

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

TA关注的人

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