用python连接本地主机mysql数据库

2024-09-30 01:33:36 发布

您现在位置:Python中文网/ 问答频道 /正文

公平警告:我是个大傻瓜。请小心轻放。在

详细信息:

  • Python 3.2版
  • MySQL5.5
  • 已安装Tornado webframe
  • pymysql已安装
  • Windows 7系统

问题: 我正在阅读关于连接mysql数据库here的Tornado文档。我只想连接到本地主机,但收到以下错误消息:

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

这是我要运行的代码:

^{pr2}$

当我执行代码时,MySQL正在运行,所以我不认为这是个问题。我还能做错什么?在


Tags: 代码数据库localhost警告here公平windows系统
3条回答

这条线:

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

完全没有道理。你不能定义那样的类。你是不是想用def代替class?在

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

绿色代码示例行应该独立工作,只要1)龙卷风数据库模块被导入,2)调整db =行,将适合您的数据库的值传递给Connection方法。在

所以:

from tornado import database  # you can use "import tornado.database" here, but then
                              # you will have to use "tornado.database.Connection()"
                              # instead of "database.Connection()"

db = database.Connection("localhost", "re_project", user="root", password="mypassword")
for bogota in db.query("SELECT * FROM cities_copy"):  # I changed "bogota" to lower-case because the convention in Python is for only classes, not objects, to have upper-case names.
    print(bogota.title)

我还没有测试过这个,因为我没有安装Python3.2,所以如果它不工作,请告诉我,我会尝试调整。在

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

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)

相关问题 更多 >

    热门问题