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动态加载变量示例分享
Feb 17 Python
Python文件操作类操作实例详解
Jul 11 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
零基础写python爬虫之抓取糗事百科代码分享
Nov 06 Python
Python实现批量将word转html并将html内容发布至网站的方法
Jul 14 Python
python中类的属性和方法介绍
Nov 27 Python
Python 一句话生成字母表的方法
Jan 02 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 Python
python+selenium 点击单选框-radio的实现方法
Sep 03 Python
如何基于Python批量下载音乐
Nov 11 Python
python3通过qq邮箱发送邮件以及附件
May 20 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
MySQL相关说明
2007/01/15 PHP
PHP 日常开发小技巧
2009/09/23 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
javascript中的对象创建 实例附注释
2011/02/08 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
详解JavaScript UTC时间转换方法
2016/01/07 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
小程序实现搜索框
2020/06/19 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
Python对数据库操作
2016/03/28 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
python随机生成库faker库api实例详解
2019/11/28 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
什么是"引用"?申明和使用"引用"要注意哪些问题?
2016/03/03 面试题
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
新闻专业本科生的自我评价分享
2013/11/20 职场文书
师范生的个人求职信范文
2014/01/04 职场文书
大学运动会入场词
2014/02/22 职场文书
《悯农》教学反思
2014/04/28 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书