Torndb模块

  概要:torndb是一个轻量级的基于MySQLdb封装的一个模块,其是tornado框架的一部分。其项目主页为:https://github.com/bdarnell/torndb 。从tornado3.0版本以后,其已经作为一个独立模块发行了。可以通过easy_install 或pip的方式直接安装。

错误:

出现这种情况后,需要载windows上安装MySQL-python-1.2.3.win-amd64-py2.7.exe安装包,点击下载

Linux操作:

  1. wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz
  2. tar zxf MySQL-python-1.2.3.tar.gz && cd MySQL-python-1.2.3
  3. python setup.py build
  4. python setup.py install 安装成功

1、连接数据库

  1. # 创建连接
  2. import torndb
  3. # 数据库、账号、密码、时区
  4. db = torndb.Connection("192.168.1.134:3306",'Jefrey',user='lzl',password='123456',time_zone='+8:00')

补充:

  • 默认字符集UTF8,没必要在加上 charset = "utf8"
  • 另外需要注意的是其默认时区为time_zone='+0:00'
  • 这个可以手动在连接的时候指定为东8区

2、创建数据表

  1. # 创建
  2. create='create table blog(id int,content text)'
  3. db.execute(create)

3、插入数据

①、execute

  1. # 插入execute
  2. # execute='insert into blog(id,content)values(%d,"%s")'%(7,'Jefrey5')
  3. # db.execute(execute)

②、insert

  1. # 单条insert
  2. insert = 'insert into blog(id,content)values(%s,%s)'
  3. db.insert(insert,10,'Jefrey10')

③、insertmany

  1. # insertmany
  2. insertmany = 'insert into blog(id,content)values(%s,%s)'
  3. db.insertmany(insert,[[11,'Jefrey11'],[12,'Jefrey12']])

  

4、查询数据

①、query查询

  1. # Query查询
  2. sql = 'SELECT * FROM blog WHERE content = %s AND id < %s'
  3. # 查询到一条数据时为列表
  4. database = db.query(sql, 'Jefrey', 11)
  5. # [{'content': u'Jefrey', 'id': 1L}]
  6.  
  7. # 查询到多条数据为也为列表
  8. database5 = db.query(sql, 'Jefrey5', 11)
  9. # [{'content': u'Jefrey5', 'id': 5L}, {'content': u'Jefrey5', 'id': 8L}, {'content': u'Jefrey5', 'id': 7L}]
  10.  
  11. # 查询数据不存在时为空列表
  12. database10 = db.query(sql, 'Jefrey10', 11)
  13. # []

生产上的一些例子:

  1. # 包含时元祖内可以是str也可是int limit必须为数字
  2. SELECT * FROM lxb.tx_vcall where sn in ('100',110) limit 0,3;
  3. SELECT * FROM lxb.tx_vcall where sn in ('100','110')
  4.  
  5. # 等于时可以是str也可是int
  6. SELECT * FROM lxb.tx_vcall where sn='100'
  7. SELECT * FROM lxb.tx_vcall where sn=100
  8.  
  9. # 大于时可以是str
  10. SELECT * FROM lxb.tx_vcall where sn>'100' limit 0,2
  11. SELECT * FROM lxb.tx_vcall where sn>'100,110' limit 0,2 #效果同上

②、get查询

  1. # Get查询
  2. sql = 'SELECT * FROM blog WHERE content = %s AND id < %s'
  3. # 查询到一条数据时为字典
  4. database = db.get(sql, 'Jefrey', 11)
  5. # {'content': u'Jefrey', 'id': 1L}
  6.  
  7. # 查询到多条数据时报错
  8. database5 = db.get(sql, 'Jefrey5', 11)
  9. # Exception: Multiple rows returned for Database.get() query
  10.  
  11. # 查询数据不存在时为None
  12. database10 = db.get(sql, 'Jefrey10', 11)
  13. # None

  

Python开发【模块】:torndb的更多相关文章

  1. python开发模块基础:re正则

    一,re模块的用法 #findall #直接返回一个列表 #正常的正则表达式 #但是只会把分组里的显示出来#search #返回一个对象 .group()#match #返回一个对象 .group() ...

  2. python开发模块基础:异常处理&hashlib&logging&configparser

    一,异常处理 # 异常处理代码 try: f = open('file', 'w') except ValueError: print('请输入一个数字') except Exception as e ...

  3. python开发模块基础:os&sys

    一,os模块 os模块是与操作系统交互的一个接口 #!/usr/bin/env python #_*_coding:utf-8_*_ ''' os.walk() 显示目录下所有文件和子目录以元祖的形式 ...

  4. python开发模块基础:序列化模块json,pickle,shelve

    一,为什么要序列化 # 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化'''比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文 ...

  5. python开发模块基础:time&random

    一,time模块 和时间有关系的我们就要用到时间模块.在使用模块之前,应该首先导入这个模块 常用方法1.(线程)推迟指定的时间运行.单位为秒. time.sleep(1) #括号内为整数 2.获取当前 ...

  6. python开发模块基础:collections模块&paramiko模块

    一,collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdic ...

  7. python开发模块基础:正则表达式

    一,正则表达式 1.字符组:[0-9][a-z][A-Z] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示字符分为很多类,比如数字.字母.标点等等.假如你现在要求一个位置&q ...

  8. Python开发——目录

    Python基础 Python开发——解释器安装 Python开发——基础 Python开发——变量 Python开发——[选择]语句 Python开发——[循环]语句 Python开发——数据类型[ ...

  9. Python开发【第六篇】:模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  10. python辅助开发模块(非官方)如pil,mysqldb,openpyxl,xlrd,xlwd

    官方文档 只是支持win32, 不支持win64 所以很麻烦 民间高人,集中做了一堆辅助库,下载后,用python安装目录下的scripts中,pip和easy_install就可以安装了 pytho ...

随机推荐

  1. CentOS下安装Filezilla软件

    说到Centos大家都是非常熟悉了,当然Filezilla也是日常中应用的软件,但是在linux下安装怎么操作呢.安装Filezilla有多个方式,但用户应该最喜欢用的就是下载安装包,然后执行安装.安 ...

  2. 【Java面试题】33 HashMap和Hashtable的区别

    1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值.HashMap允许null key和n ...

  3. 【Java面试题】4 静态变量和实例变量的区别?详细解析

    在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加.在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量.静态变 ...

  4. Oracle行列转换的思考与总结

    最近几天一直在弄Oracle-SQL的问题,涉及到了一些平时没有用到的东西,也因此而在这里郁闷了好久.现在问题得到了解决虽说不算完美.但是还是和大家一起分享一下. 行列转换之一:sum(case wh ...

  5. GOlang eclipse install

    http://golang.org/dl/ 下载golang https://codeload.github.com/GoClipse/goclipse/tar.gz/v0.8.1 解压 安装ecli ...

  6. tiny6410nfs挂载问题

    一.制作根文件系统 1.下载最新版的 busybox 地址:http://www.busybox.net/downloads/ 2.编译busybox.先make menuconfig ,修改以下:B ...

  7. 更改VS2010的[默认开发语言]

    1.菜单-->"工具"-->"导入导出设置".例如以下图: 2.选择"重置全部设置",例如以下图: 3.重置设置,例如以下图: ...

  8. 墨卡托投影, GPS 坐标转像素, GPS 坐标转距离

    Before: 1. 研究的需要, 在 google map 上爬取了一些的静态卫星地图图片,每张图片的像素为 256*256 2. 通过 photshop 将这些地图碎片手动拼成了地图, 地图只是覆 ...

  9. /etc/services

    /etc/services文件是记录网络服务名和它们对应使用的端口号及协议,很多的系统程序要使用这个文件.一般情况下,不要修改该文件的内容,否则可能会造成端口冲突 常见的服务如下,各个字段分别表示:s ...

  10. iOS中UIImage转换为NSData 方法

    参考网址:http://blog.csdn.net/lovenjoe/article/details/7484217 天牛 感谢作者的硕果 在Iphone上有两种读取图片数据的简单方法: UIImag ...