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写的创建文件夹自定义函数mkdir()
Aug 25 Python
使用Python中的线程进行网络编程的入门教程
Apr 15 Python
Python的Django框架下管理站点的基本方法
Jul 17 Python
Python使用dis模块把Python反编译为字节码的用法详解
Jun 14 Python
Python使用smtplib模块发送电子邮件的流程详解
Jun 27 Python
Python数据拟合与广义线性回归算法学习
Dec 22 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
Python中return self的用法详解
Jul 27 Python
使用python生成杨辉三角形的示例代码
Aug 29 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
tensorflow 环境变量设置方式
Feb 06 Python
解决python3中os.popen()出错的问题
Nov 19 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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
2020/03/10 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
实例讲解Python中的私有属性
2014/08/21 Python
Python中optparse模块使用浅析
2015/01/01 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
美国内衣品牌:Leonisa
2016/08/14 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
大学生求职信范文应怎么写
2014/01/01 职场文书
校园活动宣传方案
2014/03/28 职场文书
2014年护理部工作总结
2014/11/14 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
德劲DE1102数字调谐收音机机评
2022/04/07 无线电
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js