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中使用百度音乐搜索的api下载指定歌曲的lrc歌词
Jul 18 Python
Python三级目录展示的实现方法
Sep 28 Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 Python
redis数据库及与python交互用法简单示例
Nov 01 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
Jan 04 Python
python编写俄罗斯方块
Mar 13 Python
利用python生成照片墙的示例代码
Apr 09 Python
Python Json数据文件操作原理解析
May 09 Python
Python下载网易云歌单歌曲的示例代码
Aug 12 Python
浅析python字符串前加r、f、u、l 的区别
Jan 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
分享PHP入门的学习方法
2007/01/02 PHP
PHP 正则表达式小结
2015/02/12 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
行政管理人员精品工作推荐信
2013/11/04 职场文书
初中校园之声广播稿
2014/01/15 职场文书
学生会主席竞聘书
2014/03/31 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
期末复习计划
2015/01/19 职场文书
毕业酒会致辞
2015/07/29 职场文书
CAD实训总结范文
2015/08/03 职场文书
如何写好竞聘报告
2019/04/03 职场文书
MySQL存储过程及语法详解
2022/08/05 MySQL