zoukankan      html  css  js  c++  java
  • 【模块】:torndb

    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操作:

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

    1、连接数据库

    # 创建连接
    import torndb
    # 数据库、账号、密码、时区
    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、创建数据表

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

    3、插入数据

    、execute

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

    、insert

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

    、insertmany

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

      

    4、查询数据

    、query查询

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

    生产上的一些例子:

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

    、get查询

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

      

  • 相关阅读:
    [一个64位操作系统的设计与实现] 3.1 Func_GetFATEntry疑惑
    【参考】 实现X86_64架构下的BootLoader(二)文件系统
    LBA和CHS转换(转)
    Grafana 重置admin密码
    linux-source: not found ubuntu执行脚本报错
    Hbase学习
    高并发理解
    Linux下安装Artemis
    SpringInAction 第八章 发送异步消息
    SpringInAction 六七章总结
  • 原文地址:https://www.cnblogs.com/lianzhilei/p/6907651.html
Copyright © 2011-2022 走看看