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中使用Inotify监控文件实例
Feb 14 Python
Python获取单个程序CPU使用情况趋势图
Mar 10 Python
Python isinstance函数介绍
Apr 14 Python
python自定义解析简单xml格式文件的方法
May 11 Python
python脚本实现数据导出excel格式的简单方法(推荐)
Dec 30 Python
详解tensorflow实现迁移学习实例
Feb 10 Python
python如何读写csv数据
Mar 21 Python
详解python--模拟轮盘抽奖游戏
Apr 12 Python
python构造函数init实例方法解析
Jan 19 Python
Python表达式的优先级详解
Feb 18 Python
python学习之panda数据分析核心支持库
May 07 Python
Python常用配置文件ini、json、yaml读写总结
Jul 09 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中的Session和Cookie
2013/06/21 PHP
php实现的ping端口函数实例
2014/11/12 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
VuePress 静态网站生成方法步骤
2019/02/14 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
详解python-图像处理(映射变换)
2019/03/22 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
Python项目打包成二进制的方法
2020/12/30 Python
医务人员自我评价
2014/01/26 职场文书
小学教师节活动方案
2014/01/31 职场文书
家长会演讲稿
2014/04/26 职场文书
护林防火标语
2014/06/27 职场文书
车间统计员岗位职责
2015/04/14 职场文书
网络研修随笔感言
2015/11/18 职场文书
九年级语文教学反思
2016/03/03 职场文书
如何写好闭幕词
2019/04/02 职场文书
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python