一、torndb概述

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

二、连接与查询

1、创建连接

  1. import torndb
  2. db = torndb.Connection("127.0.0.1:3306", "test", user="root", password="admin")

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

2、查询

在MySQLdb中所有的操作都是通过execute执行的,而把TA封装之后的torndb,提供了3种,execute,get,query。execute的示例:

  1. cre='create table blog(id int,content text)'
  2. db.execute(cre)
  3. string='wawuee'
  4. exe='insert into blog(id,content)values(%d,"%s")'%(1,string)
  5. db.execute(exe)

execute包括创建表,插入表,删除表等等,另外其也单独封装了insert、insertmany、update、updatemany函数,同时除了一般的execute函数,其还有execute_lastrowid、execute_rowcount、executemany、executemany_lastrowid、executemany_rowcount函数。

query与get

两个都是用于返回数据结果,不同的是query可以返回多条结果;get查询的结果为空时,返回None,返回多于一条结果时会报出一个异常,一般只用于只有一条结果返回的情况。

  1. //query查询
  2. >>>sql = 'SELECT * FROM test WHERE name = %s AND id < %s'
  3. >>>db.query(sql, 'bbb', 11)
  4. [{'date': None, 'id': 1L, 'name': u'bbb'}, {'date': None, 'id': 2L, 'name': u'bbb'}]
  5. //get查询
  6. >>>sql = 'SELECT * FROM test WHERE id = %s'
  7. >>>db.get(sql, 2)
  8. {'date': None, 'id': 2L, 'name': u'bbb'}

query查询时,结果为多行时为list列表,单行只为字典。

insert与insertmany

  1. >>>sql = "INSERT INTO test (id,name,date) VALUES (%s,%s,%s)"
  2. >>>db.insert(sql, 100, "aaa", '0000-01-01')
  3. 100L

insert的参数不支持列表或元组,如果想插入列表或元组的话可以用insertmany

  1. #插入单行记录
  2. sql = "INSERT INTO test (id,name,date) VALUES (%s,%s,%s)"
  3. db.insertmany(sql,[[200,'bbb',None]])
  4. 200L
  5. #插入多行记录
  6. db.insertmany(sql,[[300,'bbb',None],[400,'bbb',None]])
  7. 400L
  8. db.insertmany(sql,[(301,'bbb',None),(401,'bbb',None)])
  9. 401L

总结下,torndb对MySQLdb封装后,query,get返回是list,dict这些,非常方便,可以直接拿来用,这是TA的优点,而且是默认自动commit的,不用MySQLdb的手动commit,用起来很是简洁。更多用法可以参看:http://torndb.readthedocs.org/en/latest/

参考

https://www.it610.com/article/5883669.htm

python torndb模块的更多相关文章

  1. 基于python3.x,使用Tornado中的torndb模块操作数据库

    目前Tornado中的torndb模块是不支持python3.x,所以需要修改部分torndb源码即可正常使用 1.开发环境介绍 操作系统:win8(64位),python版本:python3.6(3 ...

  2. Python标准模块--threading

    1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...

  3. Python的模块引用和查找路径

    模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...

  4. Python Logging模块的简单使用

    前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...

  5. Python标准模块--logging

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  6. python基础-模块

    一.模块介绍                                                                                              ...

  7. python 安装模块

    python安装模块的方法很多,在此仅介绍一种,不需要安装其他附带的pip等,python安装完之后,配置环境变量,我由于中英文分号原因,环境变量始终没能配置成功汗. 1:下载模块的压缩文件解压到任意 ...

  8. python Queue模块

    先看一个很简单的例子 #coding:utf8 import Queue #queue是队列的意思 q=Queue.Queue(maxsize=10) #创建一个queue对象 for i in ra ...

  9. python logging模块可能会令人困惑的地方

    python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍.下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调 ...

随机推荐

  1. zoj-3872 Beauty of Array (dp)

    ]Edward has an array A with N integers. He defines the beauty of an array as the summation of all di ...

  2. Ubuntu下跑通py-faster-rcnn、详解demo运作流程

    在不同的服务器不同的机器上做过很多次实验,分别遇到各种不一样的错误并且跑通Py-Faster-RCNN,因此,在这里做一个流程的汇总: 一.下载文件: 首先,文件的下载可以有两种途径: 1.需要在官网 ...

  3. mybatis(十一)mybatis常见问题

    用注解还是用 xml 配置? 常用注解:@Insert.@Select.@Update.@Delete.@Param.@Results. @Result 在 MyBatis 的工程中,我们有两种配置 ...

  4. NoSQL 数据库案例实战 -- MongoDB数据备份、恢复

    MySQL数据迁移到MongoDB数据库中 前言 一.数据备份 二.数据恢复 前言 本环境是基于 Centos 7.8 系统构建mongodb-enterprise-4.2.8学习环境具体构建,请参考 ...

  5. Battery API All In One

    Battery API All In One https://caniuse.com/?search=Battery navigator.getBattery() /* Promise {<pe ...

  6. React Hooks: useCallback All In One

    React Hooks: useCallback All In One useCallback https://reactjs.org/docs/hooks-reference.html#usecal ...

  7. DRM & 音视频 & 防盗链

    DRM & 音视频 & 防盗链 DRM Digital Rights Management / 数字版权管理 https://en.wikipedia.org/wiki/Digital ...

  8. free useful skills videos courses & tutorials

    free useful skills videos courses & tutorials website video courses https://realpython.com/ http ...

  9. npm published cli package's default install missing the `-g` flag

    npm published cli package's default install missing the -g flag https://npm.community/t/npm-publishe ...

  10. Flutter 1.5

    Flutter 1.5 Flutter SDK https://flutter.dev/docs/get-started/install/windows Android SDK This instal ...