mysql - 是否有任何可在 Tornado 上用于支持事务的 MySQL 异步驱动程序/模块?

标签 mysql python-2.7 tornado

是否有任何可在 Tornado 上用于支持事务的 MySQL 异步驱动程序/模块? 我正在用 MySQL 作为数据库编写 Tornado 应用程序。我用谷歌搜索并找到 https://github.com/woshifyz/tornado-mysql

https://github.com/hybridlogic/txMySQL

但不支持事务。

最佳答案

Tornado 自己的数据库模块支持事务就好了。

class Application(tornado.web.Application):
    def __init__(self):
        handlers = [
                    (r'/', someHandler),
                   ]

        tornado.web.Application.__init__(self, handlers)

        self.db = tornado.database.Connection(
            host=mysql_host, database=mysql_db,
            user=mysql_user, password=mysql_password)

# ----------------------

class someHandler(tornado.web.RequestHandler):
    def get(self):
        # ...

        try:
            self.application.db.execute('START TRANSACTION')
            row = self.application.db.get("SELECT ...", ...)
            # ...
            self.application.db.execute("INSERT ...", ...)
            self.application.db.execute("COMMIT")
        except Exception, e:
            self.set_status(500)
            return

        # ...

但是,它不支持异步调用。

更新(2015 年 5 月)

主题的几个更新。

  1. Tonado 的数据库驱动程序被排除在项目之外。它作为名为 torndb 的单独库提供(可用 here )。
  2. 可能会对这些项目感兴趣:TorMySQL , Tornado-MySQL , AsyncTorndb .

关于mysql - 是否有任何可在 Tornado 上用于支持事务的 MySQL 异步驱动程序/模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17949776/

相关文章:

Cron mysqldump,无法读取 '/etc/my.cnf.d' 的目录(错误代码 : 2)

Python注释多行

mysql - python /MySQL : Programming error 1146 - Table doesn't exist

python - 在 python 中的列表中定位列表元素的最快方法是什么?

python - 我在 python 中进行注册操作的最佳时间是什么时候?

Python 语法错误 : ("' return' with argument inside generator", )

php - 如何向远程数据库添加数据?

php - 使用 OR 条件组合查询数据库

php - 无法让 php const 值在 pdo 初始化中工作

Python 认证/授权框架