mysql_db_aigc.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # -*- coding: utf-8 -*-
  2. """
  3. 数据库连接及操作
  4. """
  5. import pymysql
  6. class AigcMysqlHelper:
  7. @classmethod
  8. def connect_mysql(cls):
  9. connection = pymysql.connect(
  10. host="rm-t4na9qj85v7790tf84o.mysql.singapore.rds.aliyuncs.com",
  11. port=3306, # 端口号
  12. user="crawler_admin", # mysql用户名
  13. passwd="cyber#crawler_2023", # mysql用户登录密码
  14. db="aigc-admin-prod", # 数据库名
  15. # 如果数据库里面的文本是utf8编码的,charset指定是utf8
  16. charset="utf8")
  17. return connection
  18. @classmethod
  19. def get_values(cls, sql, params=None):
  20. try:
  21. # 连接数据库
  22. connect = cls.connect_mysql()
  23. # 返回一个 Cursor对象
  24. mysql = connect.cursor()
  25. # 执行 sql 语句
  26. mysql.execute(sql, params)
  27. # fetchall方法返回的是一个元组,里面每个元素也是元组,代表一行记录
  28. data = mysql.fetchall()
  29. # 关闭数据库连接
  30. connect.close()
  31. # 返回查询结果,元组
  32. return data
  33. except Exception as e:
  34. print(f"get_values异常:{e}\n")
  35. @classmethod
  36. def update_values(cls, sql):
  37. # 连接数据库
  38. connect = cls.connect_mysql()
  39. # 返回一个 Cursor对象
  40. mysql = connect.cursor()
  41. try:
  42. # 执行 sql 语句
  43. res = mysql.execute(sql)
  44. # 注意 一定要commit,否则添加数据不生效
  45. connect.commit()
  46. return res
  47. except Exception as e:
  48. # 发生错误时回滚
  49. connect.rollback()
  50. # 关闭数据库连接
  51. connect.close()