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 相关文章推荐
vc6编写python扩展的方法分享
Jan 17 Python
Python中使用摄像头实现简单的延时摄影技术
Mar 27 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 Python
python数据结构之线性表的顺序存储结构
Sep 28 Python
Python常用特殊方法实例总结
Mar 22 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
python自动化实现登录获取图片验证码功能
Nov 20 Python
Django实现后台上传并显示图片功能
May 29 Python
python 基于opencv 实现一个鼠标绘图小程序
Dec 11 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
Dec 27 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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 stripslashes和addslashes的区别
2014/02/03 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
actionscript与javascript的区别
2011/05/25 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
jQuery插件slides实现无缝轮播图特效
2015/04/17 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
JS传参及动态修改页面布局
2017/04/13 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
Python实现从url中提取域名的几种方法
2014/09/26 Python
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
Python中的函数作用域
2018/05/07 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
前台接待岗位职责
2013/12/03 职场文书
职工运动会邀请函
2014/01/19 职场文书
节约粮食标语
2014/06/18 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
详解Redis集群搭建的三种方式
2021/05/31 Redis
用JS写一个发布订阅模式
2021/11/07 Javascript
Golang 实现WebSockets
2022/04/24 Golang