公平警告:我是一个很棒的时间菜鸟。请带小孩手套处理。
详细说明:
问题: 我关注连接到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当前正在运行,因此我认为这不应该是一个问题。还有什么我可能做错了?
答案 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,所以如果它不起作用请告诉我,我会尝试调整。