mysql.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import pymysql
  2. class Mysql(object):
  3. """
  4. 封装后的mysql方法
  5. """
  6. def __init__(self):
  7. self.connection = pymysql.connect(
  8. host="rm-bp1159bu17li9hi94.mysql.rds.aliyuncs.com", # 数据库IP地址,内网地址
  9. port=3306, # 端口号
  10. user="crawler", # mysql用户名
  11. passwd="crawler123456@", # mysql用户登录密码
  12. db="piaoquan-crawler", # 数据库名
  13. charset="utf8mb4" # 如果数据库里面的文本是utf8编码的,charset指定是utf8
  14. )
  15. def insert_line(self, data):
  16. """
  17. :param data: 插入Mysql的代码
  18. :return:
  19. """
  20. if self.index(data):
  21. try:
  22. with self.connection.cursor() as cursor:
  23. sql = "INSERT INTO we_analysis_results (mini_program, task_name, subject, date, control_group, test_group1, test_group2, test_group3, test_group4, test_group5, test_group6, test_group7, test_group8, test_group9, test_group10, test_group11, test_group12, test_group13, test_group14, test_group15, test_group16, test_group17, test_group18, test_group19, test_group20, test_group21, test_group22, test_group23, test_group24) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);"
  24. cursor.execute(sql, data)
  25. self.connection.commit()
  26. finally:
  27. self.connection.close()
  28. else:
  29. print("数据已经存在")
  30. def index(self, data):
  31. """
  32. :param data: 判断数据是否去重
  33. :return:
  34. """
  35. mini_program = data[0]
  36. task_name = data[1]
  37. subject = data[2]
  38. date = data[3]
  39. sql = (
  40. f'SELECT 1 FROM we_analysis_results where mini_program = "{mini_program}" and task_name = "{task_name}" and subject = "{subject}" and date = "{date}"')
  41. print(sql)
  42. cursor = self.connection.cursor()
  43. cursor.execute(sql)
  44. data = cursor.fetchall()
  45. if data:
  46. return False
  47. else:
  48. return True