首页 > 编程 > Python > 正文

python如何通过twisted实现数据库异步插入

2020-01-04 15:23:23
字体:
来源:转载
供稿:网友

如何通过twisted实现数据库异步插入?

  1. 导入adbapi

  2. 生成数据库连接池

  3. 执行数据数据库插入操作

  4. 打印错误信息,并排错

#!/usr/bin/python3 __author__ = 'beimenchuixue'__blog__ = 'http://www.cnblogs.com/2bjiujiu/' import pymysqlfrom twisted.enterprise import adbapifrom 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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表