结果返回 'NoneType' 在我建立数据库连接期间对象没有属性 'execute'

result returned 'NoneType' object has no attribute 'execute' during I make connection of db

我尝试使用 python 代码访问数据库连接,但是 python 数据库连接有问题。 这是我的代码,我正在使用 python 版本 2.7.10.

import pymysql

class SqlManager:
    def __init__(self):
        self.conn = None
        self.cursor = None
        self.host = "127.0.0.1"
        self.port = 3306
        self.user = "user"
        self.passwd = "pw"
        self.db_name = "db"

    def connect(self):
        self.conn = pymysql.connect(
            host=self.host, port=self.port, user=self.user,    passwd=self.passwd, db=self.db_name)
        self.cursor = self.conn.cursor(pymysql.cursors.DictCursor)
        self.conn.autocommit(True)
        return True

    def description(self):
        cur = self.cursor.execute("SELECT * FROM user")
        for row in cur:
            print(row)

实际上我想我得到了 None 类型的属性错误,也许是在初始化部分用 None 声明的连接,但我在连接部分建立了连接,所以我认为它会起作用,但是我不是。

请建议我需要修复的地方或更好的使用方法。

谢谢你的帮助。

在你做的构造函数中,

self.cursor = None

然后在 description 方法中执行此操作而不初始化 属性,

cur = self.cursor.execute("SELECT * FROM user")

您可能想将其更改为,

self.conn.cursor.execute("SELECT * FROM user")

当然你需要在初始化这个class之后调用connect方法。