如何通过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-通过twisted实现数据库异步插入?的更多相关文章

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

    如何通过twisted实现数据库异步插入? 1. 导入adbapi 2. 生成数据库连接池 3. 执行数据数据库插入操作 4. 打印错误信息,并排错 #!/usr/bin/python3 __auth ...

  2. 对比Tornado和Twisted两种异步Python框架

    做Python的人,一定知道两个性能优秀的异步网络框架:tornado,和twisted. 那么,这两个著名的框架,又有什么异同呢?tornado和twisted,我都用在几个游戏项目中,做过后端,觉 ...

  3. twisted(1)--何为异步

    早就想写一篇文章,整体介绍python的2个异步库,twisted和tornado.我们在开发python的tcpserver时候,通常只会用3个库,twisted.tornado和gevent,其中 ...

  4. 转载 twisted(1)--何为异步

    Reference: http://www.cnblogs.com/yueerwanwan0204/p/5589860.html 早就想写一篇文章,整体介绍python的2个异步库,twisted和t ...

  5. Python标准库14 数据库 (sqlite3)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.S ...

  6. python高级之操作数据库

    python高级之操作数据库 本节内容 pymysql介绍及安装 使用pymysql执行sql 获取新建数据自增ID fetch数据类型设置 1.pymysql介绍及安装 在python2中连接数据库 ...

  7. 第九篇:python高级之操作数据库

    python高级之操作数据库   python高级之操作数据库 本节内容 pymysql介绍及安装 使用pymysql执行sql 获取新建数据自增ID fetch数据类型设置 1.pymysql介绍及 ...

  8. Python学习--17 访问数据库

    实际开发中,我们会经常用到数据库. Python里对数据库的操作API都很统一. SQLite SQLite是一种嵌入式数据库,它的数据库就是一个文件.由于SQLite本身是C写的,而且体积很小,所以 ...

  9. python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作

    python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...

随机推荐

  1. zero:如何找到SEO流量的突破口

    http://www.wocaoseo.com/thread-326-1-1.html 之前一篇文章已有提到过,SEO可以分为两个阶段: 一个阶段是了解点SEO知识,然后就到网站上去找页面,看哪些招式 ...

  2. 常用Oracle SQL集锦

    常用dml和query开并行 --开并行 ALTER SESSION FORCE PARALLEL DML PARALLEL 16; ALTER SESSION FORCE PARALLEL QUER ...

  3. 0827考试 T1

    Description ​ 有一棵树,每个点有一个权值,找到一个权值最大的"乙烷"模型. ​ "乙烷"模型是指: ​ 其中黑点表示可以有0个或多个点. Samp ...

  4. 用rspec执行自动化测试用例

    rspec是一款行为驱动开发(BDD)的工具,不过在这里用于测试,准确来说应该是测试驱动开发(TDD)吧.事实上我也没搞清楚.作为初学者不清楚就不清楚吧,以后会知道的.写博客无非就是写写学习笔记,不纠 ...

  5. 【pytest】(四) pytest的一些其他的运行用法

    1. 可以设置当失败N个后停止测试 pytest -x 是当第一个失败产生后,停止 pytest --maxfail=2, 这里就是当失败2个用例后,停止测试 2.pytest 在命令行模式下支持多种 ...

  6. HDU-Tick and Tick

    The three hands of the clock are rotating every second and meeting each other many times everyday. F ...

  7. [BUUOJ记录] [HCTF 2018]WarmUp

    BUUOJ Web的第一题,其实是很有质量的一道题,但是不知道为什么成了Solved最多的题目,也被师傅们笑称是“劝退题”,这道题的原型应该是来自于phpMyadmin的一个文件包含漏洞(CVE-20 ...

  8. 1初始化项目并且引入scss

    vue.vonfig.js 这个文件引入mian.scss css: { // 是否使用css分离插件 ExtractTextPlugin extract: true, // 开启 CSS sourc ...

  9. 设置logback的log文件地址为程序运行的当前目录

    这个需求虽然怪异,却也不是无事生非,在以jar包为执行主体的程序中就会遇到. 设置方法就是指定Log_HOME为./,其在如下配置文件的第四行: <?xml version="1.0& ...

  10. MySQL中存储json格式数据

    1.1.1. JSON类型数据存储 新建表 create table json_user ( uid int auto_increment, data json, primary key(uid) ) ...