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常用的文件及文件路径、目录操作方法汇总介绍
May 21 Python
Python中for循环控制语句用法实例
Jun 02 Python
浅谈Python的Django框架中的缓存控制
Jul 24 Python
Python基于递归算法求最小公倍数和最大公约数示例
Jul 27 Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 Python
Python判断有效的数独算法示例
Feb 23 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
python urllib爬虫模块使用解析
Sep 05 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
Python3 元组tuple入门基础
Feb 09 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 Python
python 动态绘制爱心的示例
Sep 27 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
简单三步,搞掂内存泄漏
2007/03/10 Javascript
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
node app 打包工具pkg的具体使用
2019/01/17 Javascript
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
Python实现的科学计算器功能示例
2017/08/04 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
Python 函数list&read&seek详解
2019/08/28 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
如何写好建议书
2014/03/13 职场文书
锦旗标语大全
2014/06/23 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
单位租房协议书范本
2014/12/04 职场文书
2015年教师节活动总结
2015/03/20 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
MySQL中order by的执行过程
2022/06/05 MySQL