阿小信大人的头像
Life is short (You need Python) Bruce Eckel

Redhat backport Python2.7.5的一个bug2016-03-02 15:54

Redhat新机器上在用到一个Python第三方库suds时报错:

File "/srv/ves/talaris.courier/.venv/lib/python2.7/site-packages/suds/client.py", line 542, in __call__
return client.invoke(args, kwargs)
File "/srv/ves/talaris.courier/.venv/lib/python2.7/site-packages/suds/client.py", line 602, in invoke

......
#Python#   评论[0]阅读全文[1384]

[转]Python任务调度模块 – APScheduler2016-01-05 18:30

原文:

APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务、并以daemon方式运行应用。

#### 在APScheduler中有四个组件:

触发器(trigger)包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行。除了他们自己初始配置意外,触发器完全是无状态的。

作业存储(job store)存储被调度的作业,默认的作业存储是简单地把作业保存在内存中,其他的作业存储是将作业保存在数据库中。一个作业的数据讲在保存在持久化作业存储时被序列化,并在加载

......
#Python#   评论[0]阅读全文[1321]

python ftp 上传下载demo2015-09-14 17:34


#!/usr/bin/env python
# encoding: utf-8
from ftplib import FTP


class Ftp(object):

def __init__(self, host, user, passwd, **kwargs):
self.ftp = FTP(host=host, user=user, passwd=passwd, **kwargs)
print(self.ftp.getwelcome())

......
#Python#   评论[0]阅读全文[970]

flask处理ajax跨域请求2015-09-11 18:31

前后端的分离不得不涉及到ajax请求的跨域问题。

前端在发起ajax请求时,浏览器会先发一个options请求来试探后端,如果response headers里面的信息允许这个请求才会进行接下来真实的请求。

一般的跨域问题只需在response headers中设置`Access-Control-Allow-Origin`为指定的域名或者`*`就能解决,如:

headers = {"Access-Control-Allow-Origin": "*"}
return Response(json_dumped, mimetype='application/jso

......
#Python#   #flask 评论[0]阅读全文[2745]

Flask-SQLAlchemy的一点问题记录2015-09-11 18:15

### Flask-sqlalchemy查询指定字段

your_model_object.query.with_entities(Your_model.your_attribute)

类似于sqlalchemy的

session.query(Your_model.your_attribute).filter(...)

返回的是一个namedtuple

### flask-sqlalchemy MySQL server has gone away

MySQL默认移除闲置多于 8 小时的连接。使用 Flask-SQLALchemy 连接了 MyS

......
#Python#   #flask 评论[4]阅读全文[1954]

flask视图函数的装饰器必须用到wraps2015-09-11 17:38

之前遇到一个一直没意识到得问题。为flask的视图添加装饰器需要注意的一点是必须使用wraps。

wraps的作用之一是改变函数的`__name__`

如果你的装饰器不用wraps,那么使用装饰器后原本不同两个函数的名字都变成了相同的名字。在flask的视图中这样会造成函数名冲突,提示

AssertionError: View function mapping is overwriting an existing endpoint function

所以装饰器应该写成

:::python
def login_required(func):

......
#Python#   #flask 评论[0]阅读全文[1188]

What “is” a fuck in Python2015-07-01 17:45

CPython的优化

>>> x = 'a' * 20
>>> y = 'a' * 20
>>> x is y
True
>>> x = 'a' * 21
>>> y = 'a' * 21
>>> x is y
False
>>> x = 'a' * 21; y = 'a' * 21
>>> x is y
False
>>> x = 'aaaaaaaaaaaaaaaaaaaaa'
>>> len(x)
21
>>> y = 'a

......
#Python#   评论[0]阅读全文[1089]

None in Python2015-07-01 16:45

========

####“is None”比 “== None”更快。

“is”是用C实现的, 简单的比较两个对象的ID,不需要调用任何方法函数, “is”是比较id,“==”是比较值。

创建一个None实例:

Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for mor

......
#Python#   评论[0]阅读全文[949]