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库4Suite Server的介绍
Apr 14 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
Apr 11 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
python pygame模块编写飞机大战
Nov 20 Python
Python实现点云投影到平面显示
Jan 18 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
Python Django form 组件动态从数据库取choices数据实例
May 19 Python
python palywright库基本使用
Jan 21 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 Python
opencv读取视频并保存图像的方法
Jun 04 Python
python全面解析接口返回数据
Feb 12 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获取网络上文件
2006/10/09 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
关于php几种字符串连接的效率比较(详解)
2017/02/22 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
node.js发送邮件email的方法详解
2017/01/06 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
js如何验证密码强度
2020/03/18 Javascript
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
用Python编程实现语音控制电脑
2014/04/01 Python
python抓取最新博客内容并生成Rss
2015/05/17 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
python如何编写win程序
2020/06/08 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
和谐家庭事迹材料
2014/12/20 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
2015年推普周活动方案
2015/05/06 职场文书
写作技巧:怎样写好一份优秀工作总结?
2019/08/14 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
redis内存空间效率问题的深入探究
2021/05/17 Redis