-1

公正な警告:私は大したことはありません。子供の手袋で取り扱ってください。

詳細:

  • Python 3.2
  • MySQL 5.5
  • トルネードウェブフレームがインストールされました
  • pymysqlがインストールされました
  • Windows 7

問題:ここでmysqlデータベースへの接続に関する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

これは私が実行しようとしているコードです:

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が現在実行されているので、問題はないと思います。他に何が間違っている可能性がありますか?

4

3 に答える 3

2

この行:

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

まったく意味がありません。そのようなクラスを定義することはできません。def代わりに使うつもりでしたclassか?

于 2012-06-19T16:27:23.040 に答える
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)
于 2012-06-19T16:23:16.137 に答える
0

さて、私は問題を理解していると思います。ドキュメントでは、行class tornado.database.Connection(host, database, user=None, password=None, max_idle_time=25200)はドキュメントの一部であり、コピー/貼り付けを目的としたものではありません。それはdb = database.Connectionビットを行う方法を説明しています。

db =グリーンコードのサンプル行は、1)tornado.databaseモジュールがインポートされ、2)データベースに適した値が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)

Python 3.2がインストールされていないため、これをテストしていません。機能しない場合はお知らせください。調整を試みます。

于 2012-06-19T16:59:50.140 に答える