python开发常见错误

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路python开发常见错误,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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)修改即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/156280.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!