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按照多个字符对字符串进行分割的方法
Mar 17 Python
Python实现批量读取word中表格信息的方法
Jul 30 Python
简单实现python爬虫功能
Dec 31 Python
浅谈python import引入不同路径下的模块
Jul 11 Python
使用python爬虫获取黄金价格的核心代码
Jun 13 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
Django中ORM外键和表的关系详解
May 20 Python
详解Python打包分发工具setuptools
Aug 05 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
pytorch 常用函数 max ,eq说明
Jun 28 Python
详解用Python爬虫获取百度企业信用中企业基本信息
Jul 02 Python
PyQt5的相对布局管理的实现
Aug 07 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
MySql 按时间段查询数据方法(实例说明)
2008/11/02 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
php指定长度分割字符串str_split函数用法示例
2017/01/30 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
2020/11/23 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
Python对象属性自动更新操作示例
2018/06/15 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
Django 项目布局方法(值得推荐)
2020/03/22 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
Hunkemöller瑞士网上商店:欧洲最大的内衣品牌之一
2018/12/03 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
职专应届生求职信
2013/11/16 职场文书
面料业务员岗位职责
2013/12/26 职场文书
医疗纠纷协议书
2014/04/16 职场文书
公司周年庆典标语
2014/10/07 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL