mysql_db.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # -*- coding: utf-8 -*-
  2. """
  3. 数据库连接及操作
  4. """
  5. import redis
  6. import pymysql
  7. from common.common_log import Common
  8. # from common import Common
  9. class MysqlHelper:
  10. @classmethod
  11. def connect_mysql(cls):
  12. # 创建一个 Connection 对象,代表了一个数据库连接
  13. connection = pymysql.connect(
  14. host="rm-bp1159bu17li9hi94.mysql.rds.aliyuncs.com", # 数据库IP地址,内网地址
  15. # host="rm-bp1159bu17li9hi94ro.mysql.rds.aliyuncs.com",# 数据库IP地址,外网地址
  16. port=3306, # 端口号
  17. user="crawler", # mysql用户名
  18. passwd="crawler123456@", # mysql用户登录密码
  19. db="piaoquan-crawler", # 数据库名
  20. # 如果数据库里面的文本是utf8编码的,charset指定是utf8
  21. charset="utf8")
  22. return connection
  23. @classmethod
  24. def get_values(cls, sql, params=None):
  25. try:
  26. # 连接数据库
  27. connect = cls.connect_mysql()
  28. # 返回一个 Cursor对象
  29. mysql = connect.cursor()
  30. if params:
  31. # 如果传递了 params 参数
  32. mysql.execute(sql, params)
  33. else:
  34. # 如果没有传递 params 参数
  35. mysql.execute(sql)
  36. # fetchall方法返回的是一个元组,里面每个元素也是元组,代表一行记录
  37. data = mysql.fetchall()
  38. # 关闭数据库连接
  39. connect.close()
  40. # 返回查询结果,元组
  41. return data
  42. except Exception as e:
  43. print(f"get_values异常:{e}\n")
  44. @classmethod
  45. def update_values(cls, sql):
  46. # 连接数据库
  47. connect = cls.connect_mysql()
  48. # 返回一个 Cursor对象
  49. mysql = connect.cursor()
  50. try:
  51. # 执行 sql 语句
  52. res = mysql.execute(sql)
  53. # 注意 一定要commit,否则添加数据不生效
  54. connect.commit()
  55. return res
  56. except Exception as e:
  57. # 发生错误时回滚
  58. connect.rollback()
  59. # 关闭数据库连接
  60. connect.close()