pymysql 报错:from . import connections # noqa: E402

333 篇文章 ¥99.90 ¥299.90

peewee 报错:ImportError: No module named ‘MySQLdb’;pymysql 报错:from . import connections # noqa: E402

报错内容:

Traceback (most recent call last):
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/peewee.py", line 49, in <module>
    import MySQLdb as mysql  # prefer the C module.
ImportError: No module named 'MySQLdb'

During handling of the 
你问的是这一行: ```python &#39;cursorclass&#39;: pymysql.cursors.DictCursor # 返回字典格式 ``` 这行代码的作用是:**配置数据库连接时,让查询结果以“字典”形式返回,而不是默认的元组(tuple)**。 --- ### ✅ 正确写法就是你写的这样: ```python &#39;cursorclass&#39;: pymysql.cursors.DictCursor ``` 这是完全正确的!不需要加引号、不需要其他修饰。 --- ### 🔍 详细解释 假设你的 `t_accounts` 表有一条数据: | id | username | password | email | |-----|----------|----------|-----------------| | 1 | alice | 123456 | alice@abc.com | #### 默认情况下(不设置 `DictCursor`): ```python cursor.execute("SELECT * FROM t_accounts") result = cursor.fetchone() print(result) # 输出: (1, &#39;alice&#39;, &#39;123456&#39;, &#39;alice@abc.com&#39;) ``` → 是一个 **元组 tuple**,只能通过索引访问,比如 `result[0]`, `result[1]`,可读性差。 #### 设置了 `DictCursor` 后: ```python &#39;cursorclass&#39;: pymysql.cursors.DictCursor ``` ```python cursor.execute("SELECT * FROM t_accounts") result = cursor.fetchone() print(result) # 输出: {&#39;id&#39;: 1, &#39;username&#39;: &#39;alice&#39;, &#39;password&#39;: &#39;123456&#39;, &#39;email&#39;: &#39;alice@abc.com&#39;} ``` → 是一个 **字典 dict**,可以通过字段名访问,如 `result[&#39;username&#39;]`,清晰直观。 --- ### ✅ 所以你应该保留这行配置: ```python DB_CONFIG = { &#39;host&#39;: &#39;syxywl&#39;, &#39;user&#39;: &#39;your_username&#39;, &#39;password&#39;: &#39;your_password&#39;, &#39;database&#39;: &#39;`cn_sdk-14`&#39;, &#39;charset&#39;: &#39;utf8mb4&#39;, &#39;cursorclass&#39;: pymysql.cursors.DictCursor # ✔ 正确写法 } ``` > ✅ 注意:`pymysql.cursors.DictCursor` 是一个类对象,不是字符串,所以不要加引号! --- ### ❌ 错误写法示例(千万不要这么写): ```python # 错误 1:加了引号 → 当成字符串了 &#39;cursorclass&#39;: &#39;pymysql.cursors.DictCursor&#39; # 错误 2:拼写错误 &#39;cursorclass&#39;: pymysql.cursors.Dict_CURSER # 错误 3:导入错了模块 import mysql.connector &#39;cursorclass&#39;: mysql.connector.cursor.DictCursor # 不兼容! ``` 这些都会导致程序报错或无法返回字典。 --- ### 💡 小贴士:如何验证是否生效? 你可以加一段测试代码: ```python connection = get_db_connection() with connection.cursor() as cursor: cursor.execute("SELECT * FROM `t_accounts` LIMIT 1") row = cursor.fetchone() print(type(row)) # 应该输出 <class &#39;dict&#39;> print(row) connection.close() ``` 如果输出是 `<class &#39;dict&#39;>`,说明 `DictCursor` 生效了 ✅ --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值