python torndb模块
一、torndb概述
torndb是一个轻量级的基于MySQLdb封装的一个模块,其是tornado框架的一部分。其项目主页为:https://github.com/bdarnell/torndb 。从tornado3.0版本以后,其已经作为一个独立模块发行了。可以通过easy_install 或pip的方式直接安装。
二、连接与查询
1、创建连接
- import torndb
- 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的示例:
- cre='create table blog(id int,content text)'
- db.execute(cre)
- string='wawuee'
- exe='insert into blog(id,content)values(%d,"%s")'%(1,string)
- db.execute(exe)
execute包括创建表,插入表,删除表等等,另外其也单独封装了insert、insertmany、update、updatemany函数,同时除了一般的execute函数,其还有execute_lastrowid、execute_rowcount、executemany、executemany_lastrowid、executemany_rowcount函数。
query与get
两个都是用于返回数据结果,不同的是query可以返回多条结果;get查询的结果为空时,返回None,返回多于一条结果时会报出一个异常,一般只用于只有一条结果返回的情况。
- //query查询
- >>>sql = 'SELECT * FROM test WHERE name = %s AND id < %s'
- >>>db.query(sql, 'bbb', 11)
- [{'date': None, 'id': 1L, 'name': u'bbb'}, {'date': None, 'id': 2L, 'name': u'bbb'}]
- //get查询
- >>>sql = 'SELECT * FROM test WHERE id = %s'
- >>>db.get(sql, 2)
- {'date': None, 'id': 2L, 'name': u'bbb'}
query查询时,结果为多行时为list列表,单行只为字典。
insert与insertmany
- >>>sql = "INSERT INTO test (id,name,date) VALUES (%s,%s,%s)"
- >>>db.insert(sql, 100, "aaa", '0000-01-01')
- 100L
insert的参数不支持列表或元组,如果想插入列表或元组的话可以用insertmany
- #插入单行记录
- sql = "INSERT INTO test (id,name,date) VALUES (%s,%s,%s)"
- db.insertmany(sql,[[200,'bbb',None]])
- 200L
- #插入多行记录
- db.insertmany(sql,[[300,'bbb',None],[400,'bbb',None]])
- 400L
- db.insertmany(sql,[(301,'bbb',None),(401,'bbb',None)])
- 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模块的更多相关文章
- 基于python3.x,使用Tornado中的torndb模块操作数据库
目前Tornado中的torndb模块是不支持python3.x,所以需要修改部分torndb源码即可正常使用 1.开发环境介绍 操作系统:win8(64位),python版本:python3.6(3 ...
- Python标准模块--threading
1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...
- Python的模块引用和查找路径
模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...
- Python Logging模块的简单使用
前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...
- Python标准模块--logging
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- python基础-模块
一.模块介绍 ...
- python 安装模块
python安装模块的方法很多,在此仅介绍一种,不需要安装其他附带的pip等,python安装完之后,配置环境变量,我由于中英文分号原因,环境变量始终没能配置成功汗. 1:下载模块的压缩文件解压到任意 ...
- python Queue模块
先看一个很简单的例子 #coding:utf8 import Queue #queue是队列的意思 q=Queue.Queue(maxsize=10) #创建一个queue对象 for i in ra ...
- python logging模块可能会令人困惑的地方
python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍.下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调 ...
随机推荐
- 2019牛客多校第二场E MAZE(线段树 + 矩阵)题解
题意: n * m的矩阵,为0表示可以走,1不可以走.规定每走一步只能向下.向左.向右走.现给定两种操作: 一.1 x y表示翻转坐标(x,y)的0.1. 二.2 x y表示从(1,x)走到(n,y) ...
- js function All In One
js function All In One js ES5 Function & js Arrow Function Object vs Array 花括号 ?对象 , 傻傻分不清 // ar ...
- Vue UI lib missing vue bug
Vue UI lib missing vue bug Error Uncaught TypeError: Cannot read property 'prototype' of undefined a ...
- windows 10 remote desktop
windows 10 remote desktop https://support.microsoft.com/en-us/help/4028379/windows-10-how-to-use-rem ...
- MongoDB Manually config
MongoDB Manually config macOS 10.15.x path error exception in initAndListen: NonExistentPath: Data d ...
- DevOps in Action
DevOps in Action DevOps is a set of software development practices that combines software developmen ...
- dart 匹配基本数组
List<dynamic> evalList(String text) { var r = []; var i = 0; var isList = false; void parseSta ...
- Flutter 创建dashboard页面
1 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends Sta ...
- 为什么10月上线的NGK Global即将燎原资本市场
近日据社区透露,NGK Global将在10月全面启动,数据公开透明,人人可以参与运营监管. 现在,区块链经济已经处于爆发前夜.金融行业的探索领先一筹,而其他行业的应用正在快速展开.区块链行业应用头部 ...
- [Python学习笔记]调试
编码占了编程工作量的90%,调试占了另外90%,这是一个流传着的笑话.调试在编程中占有很大的分量,即使专业的程序员也一直在制造缺陷. 抛出异常 抛出异常相当于是说:"停止运行这个函数中的代码 ...