Sanic异步框架中使用aiomysql连接MySQL数据库的完整教程及示例代码

https://www.howie6879.cn/p/sanic-%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B-5.%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BD%BF%E7%94%A8/

介绍中说的很清楚,Sanic 是一个可以使用 async/await 语法编写项目的异步非阻塞框架,既然是异步框架,那么在使用过程中用到的第三方包也最好是异步的,列如http请求,最好就使用aihttp而非requests,对于数据库的连接,也是同样如此,下面我将用代码的形式来说明下如何在Sanic中连接数据库。
操作Mysql 对于mysql数据库的异步操作,我只在一些脚本中用过,用的是aiomysql,其中官方文档中讲得很清楚,也支持结合sqlalchemy编写ORM,然后aiomysql提供了自己编写的异步引擎。
from aiomysql.sa import create_engine # 这个才是关键 下面我编写一个具体的例子来用异步语句操作下数据库,第一建立如下目录:
aio_mysql ├── demo.py ├── model.py └── requirements.txt 建立表:
createdatabasetest_mysql;CREATETABLEuser(idINTAUTO_INCREMENTPRIMARYKEY,user_nameVARCHAR(16)NOTNULL,pwdVARCHAR(32)NOTNULL,real_nameVARCHAR(6)NOTNULL);一切准备就绪,下面编写代码:

script: model.py import sqlalchemy as sa metadata = sa.MetaData() user = sa.Table( user , metadata, sa.Column( id , sa.Integer, autoincrement=True, primary_key=True), sa.Column( user_name , sa.String(16), nullable=False), sa.Column( pwd , sa.String(32), nullable=False), sa.Column( real_name , sa.String(6), nullable=False), ) # script: demo.py import asyncio from aiomysql.sa import create_engine from model import user,metadata async def go(loop): “”” aiomysql项目地址:https://github.com/aio-libs/aiomysql :param loop: :return: “”” engine = await create_engine(user= root , db= test_mysql , host= 127.

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容