使用python连接到localhost mysql数据库

时间:2012-06-19 16:20:44

标签: python mysql

公平警告:我是一个很棒的时间菜鸟。请带小孩手套处理。

详细说明:

  • Python 3.2
  • MySQL 5.5
  • 安装了Tornado webframe
  • 安装了pymysql
  • Windows 7

问题: 我关注连接到mysql数据库here的Tornado文档。我只想连接到localhost,但是我收到以下错误消息:

Traceback (most recent call last):
  File "C:\Python32\DIP3\tornado-test.py", line 5, in <module>
    class Connection(localhost,re_project, user=root, password=mypassword, max_idle_time=25200):
NameError: name 'localhost' is not defined

这是我尝试运行的代码:

import tornado.ioloop
import tornado.web
import pymysql

class Connection(localhost,re_project, user=root, password=mypassword, max_idle_time=25200):
    db = database.Connection("localhost", "re_project")
    for Bogota in db.query("SELECT * FROM cities_copy"):
        print(Bogota.title)

当我执行代码时,MySQL当前正在运行,因此我认为这不应该是一个问题。还有什么我可能做错了?

3 个答案:

答案 0 :(得分:2)

这一行:

class Connection(localhost,re_project, user=root, password=mypassword, max_idle_time=25200):

毫无意义。你不能定义这样的类。您的意思是使用def代替class吗?

答案 1 :(得分:0)

您实际上并没有定义构造函数。将此视为您需要执行的操作的模板:

class Connection(object):
    def __init__(self, host, project, user, password, max_idle_time):
        self.db = database.Connection(
            host, project, user=user, password=password, max_idle_time=max_idle_time)

    def some_other_method(self):
        for bogota in self.db.query("SELECT * FROM cities_copy"):
            print(bogota.title)

答案 2 :(得分:0)

好的,我想我明白了这个问题。在文档中,行class tornado.database.Connection(host, database, user=None, password=None, max_idle_time=25200)是文档的一部分,不应复制/粘贴。这描述了如何执行db = database.Connection位。

绿色代码示例行应该自己工作,只要1)导入tornado.database模块并且2)调整db =行以将适合您的数据库的值传递给{{1方法。

所以:

Connection

我没有对此进行测试,因为我没有安装Python 3.2,所以如果它不起作用请告诉我,我会尝试调整。