data.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. # -*- coding: utf-8 -*-
  2. import mysql.connector
  3. from mysql.connector import Error
  4. # 配置数据库连接
  5. DB_CONFIG = {
  6. 'host': '60.204.139.57',
  7. 'user': 'root',
  8. 'password': '1',
  9. 'port': 6003,
  10. 'database': 'files' # 替换为数据库名称
  11. }
  12. # 初始化数据库
  13. def initialize_database():
  14. try:
  15. # 连接 MySQL 服务器(不指定数据库)
  16. connection = mysql.connector.connect(
  17. host=DB_CONFIG['host'],
  18. user=DB_CONFIG['user'],
  19. password=DB_CONFIG['password'],
  20. port=DB_CONFIG['port']
  21. )
  22. if connection.is_connected():
  23. print("成功连接到 MySQL 服务器")
  24. cursor = connection.cursor()
  25. # 检查数据库是否存在
  26. cursor.execute(f"SHOW DATABASES LIKE '{DB_CONFIG['database']}';")
  27. result = cursor.fetchone()
  28. if result:
  29. print(f"数据库 {DB_CONFIG['database']} 已存在。")
  30. else:
  31. print(f"数据库 {DB_CONFIG['database']} 不存在,正在创建...")
  32. cursor.execute(f"CREATE DATABASE {DB_CONFIG['database']};")
  33. print(f"数据库 {DB_CONFIG['database']} 创建成功。")
  34. except Error as err:
  35. print(f"连接 MySQL 时发生错误:{err}")
  36. finally:
  37. if connection.is_connected():
  38. cursor.close()
  39. connection.close()
  40. print("MySQL 服务器连接已关闭")
  41. # 初始化表
  42. def initialize_table():
  43. try:
  44. connection = mysql.connector.connect(**DB_CONFIG)
  45. if connection.is_connected():
  46. cursor = connection.cursor()
  47. # 创建表
  48. cursor.execute('''CREATE TABLE IF NOT EXISTS fruit (
  49. id INT AUTO_INCREMENT PRIMARY KEY,
  50. name VARCHAR(100),
  51. origin VARCHAR(100)
  52. )''')
  53. print("--- 创建 fruit 表 ---")
  54. except Error as err:
  55. print(f"初始化表时发生错误:{err}")
  56. finally:
  57. if connection.is_connected():
  58. cursor.close()
  59. connection.close()
  60. print("MySQL 连接已关闭")
  61. # 插入数据
  62. def insert_data(name, origin):
  63. try:
  64. connection = mysql.connector.connect(**DB_CONFIG)
  65. if connection.is_connected():
  66. cursor = connection.cursor()
  67. # 插入数据
  68. cursor.execute("INSERT INTO fruit (name, origin) VALUES (%s, %s)", (name, origin))
  69. connection.commit()
  70. print(f"插入数据成功:({name}, {origin})")
  71. except Error as err:
  72. print(f"插入数据时发生错误:{err}")
  73. finally:
  74. if connection.is_connected():
  75. cursor.close()
  76. connection.close()
  77. print("MySQL 连接已关闭")
  78. def delete_data(name):
  79. try:
  80. connection = mysql.connector.connect(**DB_CONFIG)
  81. if connection.is_connected():
  82. cursor = connection.cursor()
  83. # 删除数据
  84. cursor.execute("DELETE FROM fruit WHERE name = %s", (name,))
  85. connection.commit()
  86. print(f"成功删除名称为 {name} 的记录")
  87. except Error as err:
  88. print(f"删除数据时发生错误:{err}")
  89. finally:
  90. if connection.is_connected():
  91. cursor.close()
  92. connection.close()
  93. print("MySQL 连接已关闭")
  94. # 查询数据
  95. def fetch_data():
  96. try:
  97. connection = mysql.connector.connect(**DB_CONFIG)
  98. if connection.is_connected():
  99. cursor = connection.cursor()
  100. # 查询数据
  101. cursor.execute("SELECT * FROM fruit")
  102. rows = cursor.fetchall()
  103. print("--- 查询结果 ---")
  104. for row in rows:
  105. print(row)
  106. return rows
  107. except Error as err:
  108. print(f"查询数据时发生错误:{err}")
  109. finally:
  110. if connection.is_connected():
  111. cursor.close()
  112. connection.close()
  113. print("MySQL 连接已关闭")
  114. # 主函数
  115. if __name__ == "__main__":
  116. # 初始化数据库和表
  117. initialize_database()
  118. initialize_table()
  119. # 插入示例数据
  120. insert_data('Apple', 'China')
  121. insert_data('Banana', 'Ecuador')
  122. # 查询数据
  123. fetch_data()