aiomysql实现对数据库异步读取
有一个库叫做aiomysql,这是一个基于asyncio和pymysql的库。至于为什么可以在tornado中使用,是因为高版本tornado的底层使用了asyncio。
import asyncio
import aiomysql
async def test(loop):
# 这里的loop就是我们通过asyncio.get_event_loop()创建的,但是其实可以不传,因为会自动创建一个
async with aiomysql.create_pool(host="localhost", port=3306, user="root",
password="zgghyys123", db="satori", loop=loop) as pool:
async with pool.acquire() as conn:
async with conn.cursor() as cursor:
await cursor.execute("select * from girl")
data1 = await cursor.fetchone()
data2 = await cursor.fetchall()
print(data1)
print(data2)
pool.close()
await pool.wait_closed()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(test(loop))
"""
(0, '古明地觉', 16, 'f')
((1, '椎名真白', 17, 'f'), (2, '古河渚', 20, 'f'))
"""
我们看看可不可以使用tornado去启动aiomysql
import tornado.ioloop
import aiomysql
async def test():
# 这里的loop就是我们通过asyncio.get_event_loop()创建的,但是其实可以不传,因为会自动创建一个
async with aiomysql.create_pool(host="localhost", port=3306, user="root",
password="zgghyys123", db="satori") as pool:
async with pool.acquire() as conn:
async with conn.cursor() as cursor:
await cursor.execute("select * from girl")
data1 = await cursor.fetchone()
data2 = await cursor.fetchall()
print(data1)
print(data2)
pool.close()
await pool.wait_closed()
if __name__ == '__main__':
tornado.ioloop.IOLoop.current().run_sync(test)

一样是可以的,因为tornado的底层事件循环使用的便是asyncio
aiomysql实现对数据库异步读取的更多相关文章
- 2.aiomysql实现对数据库异步读取
有一个库叫做aiomysql,这是一个基于asyncio和pymysql的库.至于为什么可以在tornado中使用,是因为高版本tornado的底层使用了asyncio. import asyncio ...
- php实现数据库数据读取生成缓存文件
有些时候我们希望减少对数据库的 查询来提高程序的性能,因为这些数据不是经常变更的,而是会在很长一段时间内都不会变化,因此,我们每连接一次数据库,都会把相应的结果用文件的形式保存 起来.比如对于一个商城 ...
- [html5+java]文件异步读取及上传核心代码
html5+java 文件异步读取及上传关键代码段 功能: 1.多文件文件拖拽上传,file input 多文件选择 2.html5 File Api 异步FormData,blob上传,图片显示 3 ...
- ASP.Net将图片以二进制方式存入数据库,并读取
把图片转换成二进制--把二进制转换成图片 private void button1_Click(object sender, EventArgs e) { string path = this.tex ...
- [转]asp.net mvc 从数据库中读取图片
本文转自:http://www.cnblogs.com/mayt/archive/2010/05/20/1740358.html 首先是创建一个类,继承于ActionResult,记住要引用Syste ...
- WP_图片管理机制/异步读取网络图片
项目有这样的需求, 要求窗口加载一揽子图片,为了不让UI阻塞太久,采用异步读取后绑定显示的方案. 图片的下载应该采用并发的过程(等待网络响应会很耗时,一张一张的下载,等待时间太长) 图片的下载不能占用 ...
- 项目中使用的ajax异步读取数据结构设计
设计稍微复杂了一点,完成ajax读取功能涉及到了很多页面.虽然如此,但感觉比较灵活. 和传统方法唯一的区别在于多了一层数据容器控件,里面提供了显示数据的HTML元素及相应的JS方法. 这样数据控件指生 ...
- asp.net mvc 从数据库中读取图片的实现代码
首先是创建一个类,继承于ActionResult,记住要引用System.Web.Mvc命名空间,如下: public class ImageResult : ActionResult { publi ...
- C#从SQL server数据库中读取l图片和存入图片
原文:C#从SQL server数据库中读取l图片和存入图片 本实例主要介绍如何将图片存入数据库.将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStr ...
随机推荐
- Android中图片的三级缓存
为什么要使用三级缓存 如今的 Android App 经常会需要网络交互,通过网络获取图片是再正常不过的事了 假如每次启动的时候都从网络拉取图片的话,势必会消耗很多流量.在当前的状况下,对于非wifi ...
- Steps 步骤条
引导用户按照流程完成任务的分步导航条,可根据实际应用场景设定步骤,步骤不得少于 2 步. 基础用法 简单的步骤条. 设置active属性,接受一个Number,表明步骤的 index,从 0 开始.需 ...
- user_tab_columns和user_col_comments区别
SELECT USER_TAB_COLUMNS.COLUMN_NAME, USER_COL_COMMENTS.COMMENTS, CASE WHEN INSTR(USER_TAB_COLUMNS.DA ...
- idea 中提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
maven的配置文件settings.xml中添加: <profile> <id>jdk-1.8</id> <activation> <activ ...
- Powershell重命名文件夹
$TargetFolder = "F:\Code\优化后\" $folders = get-childitem $TargetFolder -forceForeach ($Fold ...
- nvm 安装及操作 node版本管理
安装 > curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash 安装完成后重启下 ...
- 深入理解java:4.3.1. 框架编程之MyBatis---SQL语句执行的完整流程
Mybatis的整个的执行流程.如下图所示: 原理详解: MyBatis应用程序根据XML配置文件创建SqlSessionFactory, SqlSessionFactory在根据配置,配置来源于两个 ...
- div随着屏幕滚动而滚动
<script type="text/javascript"> $(document).ready(function () { var menuYloc = $(&qu ...
- C语言|作业07
一.本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://i-beta.cnblogs.com/posts/edit;postId=11811545 我在这个课程的 ...
- superset连接sqlite频繁断开
出现上述现象的原因是SQLite只支持库级锁,不支持并发执行写操作,即使是不同的表,同一时刻也只能进行一个写操作.例如,事务T1在表A新插入一条数据,事务T2在表B中更新一条已存在的数据,这两个操作是 ...