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数据类型转换函数总结
Mar 11 Python
Python虚拟环境Virtualenv使用教程
May 18 Python
Python的Django框架中从url中捕捉文本的方法
Jul 20 Python
Django框架中的对象列表视图使用示例
Jul 21 Python
python基础教程之匿名函数lambda
Jan 17 Python
Python实现学校管理系统
Jan 11 Python
Python实现的redis分布式锁功能示例
May 29 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
Aug 02 Python
python实现汉诺塔算法
Mar 01 Python
python三引号输出方法
Feb 27 Python
python文件路径操作方法总结
Dec 21 Python
解决python的空格和tab混淆而报错的问题
Feb 26 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 基本语法格式
2009/12/15 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
Jquery cookie操作代码
2010/03/14 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
JS常用知识点整理
2017/01/21 Javascript
Vue组件开发初探
2017/02/14 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
Python-opencv 双线性插值实例
2020/01/17 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
如何学习Python time模块
2020/06/03 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
一些PHP的面试题
2015/05/06 面试题
在求职信中如何凸显个人优势
2013/10/30 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
新教师培训方案
2014/06/08 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技
MySQL中order by的执行过程
2022/06/05 MySQL