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 json encode datetime类型
Dec 28 Python
在Django框架中设置语言偏好的教程
Jul 27 Python
Python 通过pip安装Django详细介绍
Apr 28 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
django的settings中设置中文支持的实现
Apr 28 Python
详解使用python绘制混淆矩阵(confusion_matrix)
Jul 14 Python
Python实现滑动平均(Moving Average)的例子
Aug 24 Python
Django获取应用下的所有models的例子
Aug 30 Python
python+OpenCV实现车牌号码识别
Nov 08 Python
Django通过dwebsocket实现websocket的例子
Nov 15 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
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
深入分析PHP引用(&)
2014/09/04 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
javascript 写类方式之一
2009/07/05 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
2015/08/10 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
2016/06/06 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
python每天定时运行某程序代码
2019/08/16 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
Django中template for如何使用方法
2021/01/31 Python
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
我的梦中国梦演讲稿
2014/04/23 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
党员批评与自我批评
2014/10/15 职场文书
学术研讨会主持词
2015/07/04 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书