mysql_db.py 2.1 KB

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