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 24 Python
python3.5 email实现发送邮件功能
May 22 Python
实例讲解Python3中abs()函数
Feb 19 Python
Python寻找路径和查找文件路径的示例
Jul 10 Python
PyCharm搭建Spark开发环境的实现步骤
Sep 05 Python
深入浅析Python 中的sklearn模型选择
Oct 12 Python
pytorch之ImageFolder使用详解
Jan 06 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
python实现人机五子棋
Mar 25 Python
Python sublime安装及配置过程详解
Jun 29 Python
python两种获取剪贴板内容的方法
Nov 06 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 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的宝库目录--PEAR
2006/10/09 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
jquery dialog键盘事件代码
2010/08/01 Javascript
50个比较实用jQuery代码段
2011/09/18 Javascript
javascript:json数据的页面绑定示例代码
2014/01/26 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
用Python的urllib库提交WEB表单
2009/02/24 Python
Python中index()和seek()的用法(详解)
2017/04/27 Python
python 检查文件mime类型的方法
2018/12/08 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
python中pdb模块实例用法
2021/01/15 Python
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
生产部统计员岗位职责
2014/01/05 职场文书
个人银行贷款担保书
2014/04/01 职场文书
意向书范本
2014/07/29 职场文书
工作年限证明范本
2015/06/15 职场文书
演讲比赛主持词
2015/06/29 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA