python - 在连接数据库期间返回的结果 'NoneType' 对象没有属性 'execute'

标签 python python-2.7 pymysql

我尝试使用 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)

实际上,我想我得到了Nonetype的属性错误,可能是在init部分中用None声明了连接,但是我在connect部分中进行了连接,所以我认为它可以工作,但我没有。

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

谢谢你帮助我。

最佳答案

在您所做的构造函数中,

self.cursor = None

然后您可以在 description 方法中执行此操作,而无需初始化属性,

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

您可能想将其更改为,

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

当然,您需要在初始化此类后调用connect方法。

关于python - 在连接数据库期间返回的结果 'NoneType' 对象没有属性 'execute',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36104412/

相关文章:

python - TypeError : write() argument must be str, 不是字节,升级到 python 3

python - 根据文件名将目录中的多个 .xlsx 文件读入单独的 Pandas 数据框中

python - 将 Python 列表转换为有序的唯一值

Python 列出依赖于 MySQL 用户和连接的函数

mysql - 优化MySQL中的where子句查询

python - 没有名为 pymysql 的模块 - aws 无服务器框架

python - 访问 bool numpy 矩阵的所有非对角线元素

python - 由于 gcc 错误,无法使用 pip 安装 sasl

python - 如何在 Visual Studio 2013 上安装 Python 的 Mysql 包

python - 使用元组中的唯一键和各种列表值创建字典