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 相关文章推荐
Pyqt实现无边框窗口拖动以及窗口大小改变
Apr 19 Python
python线程池threadpool实现篇
Apr 27 Python
python爬取淘宝商品销量信息
Nov 16 Python
Python里字典的基本用法(包括嵌套字典)
Feb 27 Python
基于python实现高速视频传输程序
May 05 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
Jun 03 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
jenkins配置python脚本定时任务过程图解
Oct 29 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
May 27 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
Aug 07 Python
python空元组在all中返回结果详解
Dec 15 Python
python热力图实现简单方法
Jan 29 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
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
jquery JSON的解析方式
2009/07/25 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
javascript获取元素偏移量的方法有哪些
2014/06/24 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
Python八皇后问题解答过程详解
2019/07/29 Python
django+echart数据动态显示的例子
2019/08/12 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
顶撞老师检讨书
2014/02/07 职场文书
小学一年级评语大全
2014/04/22 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
小学教师求职信范文
2015/03/20 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书