pymysql 连接数据库密码转义的问题

  • 之前做appium自动化只需要造数据的时候,练了测试环境的数据库,但是密码是纯数字(123456),导致pysql连数据库的时候对密码进行了一次转义,但是传过去的是int类型,导致转义失败
File "/Library/Python/2.7/site-packages/pymysql/connections.py", line 1131, in _request_authentication
    authresp = _scramble(self.password.encode('latin1'), self.salt)
AttributeError: 'int' object has no attribute 'encode'
  • 解决方法,在传入密码的时候做一次强转字符串就可以了
conn = pymysql.connect(
            host=y["db"]["ip"],
            port=y["db"]["port"],
            user=y["db"]["uname"],
            passwd=str(y["db"]["passwd"]),
            db=y["db"]["table"],
            charset="utf8mb4"
        )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Flask中使用PyMySQL连接数据库的步骤如下: 1. 安装PyMySQL库:可以使用pip install pymysql命令进行安装。 2. 在Flask应用中导入PyMySQL库:可以使用import pymysql语句进行导入。 3. 创建数据库连接:使用pymysql.connect()函数创建数据库连接对象,需要传入数据库的主机名、用户名、密码数据库名等参数。 4. 创建游标对象:使用连接对象的cursor()方法创建游标对象,用于执行SQL语句。 5. 执行SQL语句:使用游标对象的execute()方法执行SQL语句。 6. 提交事务:使用连接对象的commit()方法提交事务。 7. 关闭游标和连接:使用游标对象的close()方法和连接对象的close()方法关闭游标和连接。 示例代码如下: ```python import pymysql from flask import Flask app = Flask(__name__) @app.route('/') def index(): # 创建数据库连接 conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8') # 创建游标对象 cursor = conn.cursor() # 执行SQL语句 cursor.execute('select * from user') # 获取查询结果 result = cursor.fetchall() # 提交事务 conn.commit() # 关闭游标和连接 cursor.close() conn.close() return str(result) if __name__ == '__main__': app.run() ``` 在上面的示例中,我们创建了一个Flask应用,并在路由函数中使用PyMySQL连接数据库,执行了一个查询语句,并将查询结果返回给客户端。注意,在实际开发中,我们应该将数据库连接的创建和关闭放在try...finally语句中,以确保连接和游标对象能够被正确关闭。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值