首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tornado和postgresql

问tornado和postgresql
EN

Stack Overflow用户
提问于 2012-12-02 01:08:31
回答 2查看 10.9K关注 0票数 2

我使用的是facebook's tornado的演示

但我不想使用MySQL并试图用PG替换它,所以我继续进行修改,如下所示:

代码语言:javascript
复制
define("port", default=8888, help="run on the given port", type=int)
define("pgsql_host", default="127.0.0.1:5432", help="blog database host")
define("pgsql_database", default="pgdb", help="blog database name")
define("pgsql_user", default="admin", help="blog database user")
define("pgsql_password", default="pgpass", help="blog database password")

和

代码语言:javascript
复制
        # Have one global connection to the blog DB across all handlers
    self.db = tornado.database.Connection(
        host=options.pgsql_host, database=options.pgsql_database,
        user=options.pgsql_user, password=options.pgsql_password)

但是app在我运行的时候就挂了,怎么正确的移植到PG上呢?

实际上,在一段时间后,我得到了错误:

代码语言:javascript
复制
    Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/tornado-2.4.1-py2.7.egg/tornado/database.py", line 84, in __init__
    self.reconnect()
  File "/usr/local/lib/python2.7/dist-packages/tornado-2.4.1-py2.7.egg/tornado/database.py", line 101, in reconnect
    self._db = MySQLdb.connect(**self._db_args)
  File "/usr/lib/pymodules/python2.7/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/MySQLdb/connections.py", line 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 0")

为什么要连接到MySQL?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-02 02:45:10

你确定你可以在不同的关系型数据库管理系统中使用它吗?包括PostgreSQL?它使用为与MySQL一起工作而编写的torndb包。

所以我认为如果你想在postgresql中使用它,你应该为PostgreSQL编写你自己的torndb包。

编辑:正如你在Tornado Wiki上看到的,你必须有postgresql wrapper (momoko或psycopg),有一些链接可以进一步研究。

EDIT2: Momoko描述:

“Tornado的异步Psycopg2包装器。”

票数 7
EN

Stack Overflow用户

发布于 2012-12-04 13:30:32

tornado.database (将在3.0中脱离Tornado )是一个轻量级的MySQL包装器。除了MySQL之外,它不支持任何其他东西。

好消息是,正如@sufleR所指出的,你有一些选择。您可以直接使用pyscopg,也可以使用pyscopg的异步包装器momoko。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13661636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档