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数据统计的一些小技巧
Jul 21 Python
python函数式编程学习之yield表达式形式详解
Mar 25 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
python字典的遍历3种方法详解
Aug 10 Python
python3.8与pyinstaller冲突问题的快速解决方法
Jan 16 Python
pycharm设置当前工作目录的操作(working directory)
Feb 14 Python
Python print不能立即打印的解决方式
Feb 19 Python
Python列表倒序输出及其效率详解
Mar 04 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 Python
Django中template for如何使用方法
Jan 31 Python
Python合并pdf文件的工具
Jul 01 Python
Python可视化学习之seaborn绘制矩阵图详解
Feb 24 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 pdo新改动加载注意事项
2008/09/11 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
php5.5新数组函数array_column使用
2013/07/08 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
JavaScript操作class和style样式代码详解
2016/02/13 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
python实现决策树分类算法
2017/12/21 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
服装促销活动方案
2014/02/23 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers