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


Posted in Python onMarch 20, 2018

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

1. 导入adbapi

2. 生成数据库连接池

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

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

#!/usr/bin/python3
 
__author__ = 'beimenchuixue'
__blog__ = 'http://www.cnblogs.com/2bjiujiu/'
 
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 相关文章推荐
python解析xml文件操作实例
Oct 05 Python
简介二分查找算法与相关的Python实现示例
Aug 26 Python
星球大战与Python之间的那些事
Jan 07 Python
Python实现删除文件中含“指定内容”的行示例
Jun 09 Python
对python dataframe逻辑取值的方法详解
Jan 30 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
python批量下载抖音视频
Jun 17 Python
python requests使用socks5的例子
Jul 25 Python
Python JSON编解码方式原理详解
Jan 20 Python
Django Admin后台添加数据库视图过程解析
Apr 01 Python
python实现经纬度采样的示例代码
Dec 10 Python
python保存大型 .mat 数据文件报错超出 IO 限制的操作
May 10 Python
分分钟入门python语言
Mar 20 #Python
python使用生成器实现可迭代对象
Mar 20 #Python
浅谈Python中的作用域规则和闭包
Mar 20 #Python
python如何实现反向迭代
Mar 20 #Python
python利用高阶函数实现剪枝函数
Mar 20 #Python
python flask中静态文件的管理方法
Mar 20 #Python
python web基础之加载静态文件实例
Mar 20 #Python
You might like
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
php缓冲输出实例分析
2015/01/05 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
拖动一个HTML元素
2006/12/22 Javascript
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
了解重排与重绘
2019/05/29 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
介绍Python中的__future__模块
2015/04/27 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
2019/10/14 Python
python创建学生管理系统
2019/11/22 Python
解决Python使用列表副本的问题
2019/12/19 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
化学相关工作求职信
2013/10/02 职场文书
七年级地理教学反思
2014/01/26 职场文书
党员公开承诺践诺书
2014/03/25 职场文书
小学生安全责任书
2014/07/25 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
2015年党员承诺书
2015/01/21 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL