用Python方法对Cursor进行扩展,pythoncursor扩展,用Python方法对Cu
用Python方法对Cursor进行扩展,pythoncursor扩展,用Python方法对Cu
用Python方法对Cursor进行扩展。为了方便使用,所以我对MySQLdb的Cursor进行了扩展,使其能够支持带?以及:xxx的查询方式。是因为以下原因。
目前的MySQLdb中的sql的语法,支持如下类型的语法:
insert into users(id, name, domain, created_at)values(%s, %s, %s, %s)
除以上之外,工作也会也用到很多的一些通用的sql的语法,是下面这样的:
insert into users(id, name, domain, created_at)values(?, ?, ?, ?)
insert into users(id, name, domain, created_at)values(:id, :name, :domain, :created_at)
class BaseCursor(MySQLdb.cursors.BaseCursor): def _get_query_parameters(self, query, params): if isinstance(params, dict) and params: p = re.compile(':\w+') return (p.sub('%s', query), [params[param_token[1:]] for param_token in p.findall(query)]) else: return (query.replace('?', '%s'), params) def execute(self, query, args=None): (query, params) = self._get_query_parameters(query, args) return MySQLdb.cursors.BaseCursor.execute(self, query, params)class Cursor(CursorStoreResultMixIn, CursorTupleRowsMixIn, BaseCursor):#www.iplaypy.com#调用的代码如下:cursor=Cursor(self._dbconn)try: cursor.execute('insert into users(name, domain)values(:name, :domain)', dict(name='xxx', domain='hahaha')) return cursor.lastrowidfinally: cursor.close()
编橙之家文章,
相关内容
- 最简易的python计算器实现源代码,python计算器源代码
- tornado web url路由配置扩展,tornadourl,tornado web
- 教你用python随机生成固定长度字符串的方法,python字符
- 初学者用python爬凡客图片的源码,,python学习最大的动
- Python解一元一次方程简单方法,python一元一次方程,用
- Python实现分词处理的示例,python分词示例,Python实现分词
- Sleep和Sort的结合应用小游戏,sleepsort小游戏,想知道自己
- python方法输出100以内的素数,python输出100素数,要求:
- 用Python方法查询移动手机余额话费的源码示例,python移
- Python导出linux环境中的所有用户权限示例,pythonlinux,P
评论关闭