首页 > 数据库技术 > 详细

python_如何通过twisted实现数据库异步插入?

时间:2017-07-26 22:47:16      阅读:678      评论:0      收藏:0      [点我收藏+]

如何通过twisted实现数据库异步插入?

  1. 导入adbapi

  2. 生成数据库连接池

  3. 执行数据数据库插入操作

  4. 打印错误信息,并排错

#!/usr/bin/python3

import pymysql
from twisted.enterprise import adbapi
from twisted.internet import reactor


def go_insert(cursor, sql):
    # 对数据库进行插入操作,并不需要commit,twisted会自动帮我commit
    try:
        for i in range(10):
            data = str(i)
            cursor.execute(sql, data)
    except Exception as e:
        print(e)


def handle_error(failure):
    # 打印错误
    if failure:
        print(failure)
    
if __name__ == ‘__main__‘:
    # 数据库基本配置
    db_settings = {
        ‘host‘: ‘localhost‘,
        ‘db‘: ‘jobole‘,
        ‘user‘: ‘root‘,
        ‘password‘: ‘passwort‘,
        ‘charset‘: ‘utf8‘,
        ‘use_unicode‘: True
    }
    # sql语句模版
    insert_sql = ‘insert into test_1(text_1) value(%s)‘
    
    # 普通方法插入数据
    # conn = pymysql.connect(**db_settings)
    # cursor = conn.cursor()
    # cursor.execute(insert_sql, ‘1‘)
    # conn.commit()
    
    try:
        # 生成连接池
        db_conn = adbapi.ConnectionPool(‘pymysql‘, **db_settings)
        # 通过连接池执行具体的sql操作,返回一个对象
        query = db_conn.runInteraction(go_insert, insert_sql)
        # 对错误信息进行提示处理
        query.addCallbacks(handle_error)
    except Exception as e:
        print(e)
        
    # 定时,给4秒时间让twisted异步框架完成数据库插入异步操作,没有定时什么都不会做
    reactor.callLater(4, reactor.stop)
    reactor.run()

  

python_如何通过twisted实现数据库异步插入?

原文:http://www.cnblogs.com/2bjiujiu/p/7242292.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!