【Python项目开发】新手Tornado项目开发记录(二)

本文档记录了一位新手在Tornado框架下开发项目的经历,主要涉及如何利用aiomysql和aioredis进行异步数据库配置。通过重写tornado.web.Application类,设置数据库连接池,并提供了相关代码示例。后续文章将讨论Session功能的实现。

项目框架搭建及数据库配置

新版tornado框架已经完全接纳了python中的asyncio库和async/await异步语法
所以在我的项目里采用aiomysql和aioredis两个异步库来连接数据库和redis
但是我没办法在网上找到详细的在tornado中使用这两个库的方法,只能按照官网的说明来用了

1. 重写tornado.web.Application类

目的在于将我们的数据库连接池导入到application类中

class Application(web.Application):

    def __init__(self, db_pool, redis_pool, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self._db_pool = db_pool
        self._redis = redis_pool

    @property
    def db_pool(self):
        return self._db_pool

    @property
    def redis(self):
        return self._redis

2.编写aiomysql和aioredis初始化函数

为了避免连接占用,这里采用连接池来连接数据库
数据库连接池初始化函数

async def init_db_pool(loop): # 数据库连接池初始化
    return await aiomysql.create_pool(maxsize=300, **mysql_options, loop=loop)

async def init_redis_pool(loop):
    return await aioredis.Redis(aioredis.ConnectionsPool(**redis_options
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值