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利用多进程将大量数据放入有限内存的教程
Apr 01 Python
使用Python的判断语句模拟三目运算
Apr 24 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
python利用Opencv实现人脸识别功能
Apr 25 Python
Django中使用CORS实现跨域请求过程解析
Aug 05 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 Python
python生成器用法实例详解
Nov 22 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
django 链接多个数据库 并使用原生sql实现
Mar 28 Python
Python基于gevent实现高并发代码实例
May 15 Python
python selenium xpath定位操作
Sep 01 Python
Django 权限管理(permissions)与用户组(group)详解
Nov 30 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/28 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
input 输入框内的输入事件详细分析
2010/03/17 Javascript
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
办公室打字员岗位职责
2014/04/16 职场文书
英文演讲稿开场白
2014/08/25 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
公司股份合作协议书
2014/12/07 职场文书
个人简历求职信范文
2015/03/20 职场文书
小学生运动会广播
2015/08/19 职场文书
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js