python开发常见错误

mysql.connector.errors.NotSupportedError: Authentication plugin ‘caching_sha2_password’ is not supported

出现该原因的问题是mysql8.0后加密方式改变了。

import mysql.connector
connection = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="password"
)
print(connection)

在这里插入图片描述
不支持身份验证插件“ caching_sha2_password”,

import mysql.connector

connection = mysql.connector.connect(
	host="localhost",
    user="root",
    passwd="password",
    auth_plugin='mysql_native_password'
)

print(connection)

在这里插入图片描述

TypeError: ‘module’ object is not callable

class User(object):
    def __init__(self, username, password):
        self.__username = username
        self.__password = password

    def getUserName(self):
        return self.__username

    def setUserName(self, username):
        self.__username = username
        return None

    def getPassword(self):
        return self.__password

    def serPassword(self, password):
        self.__password = password
        return None

import mysqlTest.User


if __name__ == "__main__":
    user = mysqlTest.User('zhangsan', 123456)
    print(user.getUserName())
    print(user.getPassword())

在这里插入图片描述
Python导入模块的方法有两种

import modulefrom module import区别是前者是导入包的模块即包下的py文件,后者是深入模块即可以导入py文件定义的类和方法。

# 将import改为from...import深入内部
from mysqlTest.User import User

在这里插入图片描述

mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement

def method():
    cursor.execute('insert into user(username,password) values(%s,%d)',("zhansan1","123456"))
    values = cursor.rowcount

    print(values)

    cursor.close()
    try:
        #num = 5 / 0
        conn.commit()
    except Exception:
        conn.rollback()
    finally:
        conn.close

在这里插入图片描述

cursor的sql语句中使用了python%d占位符。以上代码会执行出错,因为无论是数字(包括整数和浮点数)、字符串、日期时间或其他任意类型,都应该使用%s占位符。

Duplicate entry ‘zhangsan’ for key ‘username’

出现该错的原因是username字段设置了unique键,表示该键不可重复,所以插入重复的键是会报错。解决方法,删除unique键drop index username on table_name

sqlalchemy.orm.exc.FlushError: Instance <User at 0x3a8e7a8> has a NULL identity key

在这里插入图片描述

出现该错误的原因是:id是字符串类型,无法自增长

# 定义User对象:
class User(Base):
    # 表的名字:
    __tablename__ = 'user'

    # 表的结构:
    id = Column(String(20), primary_key=True)
    username = Column(String(20))
    password = Column(String(11))

    def __init__(self, username, password):
        self.username = username
        self.password = password

如代码所示id应该是Iterger类型,却写成了String类型故报错。id = Column(Integer, primary_key=True)修改即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xvwen

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

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

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

打赏作者

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

抵扣说明:

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

余额充值