166 lines
4.8 KiB
Python
166 lines
4.8 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""插入词汇书数据"""
|
||
|
||
import mysql.connector
|
||
from datetime import datetime
|
||
|
||
# 数据库配置
|
||
db_config = {
|
||
'host': 'localhost',
|
||
'port': 3306,
|
||
'user': 'root',
|
||
'password': 'JKjk20011115',
|
||
'database': 'ai_english_learning',
|
||
'charset': 'utf8mb4'
|
||
}
|
||
|
||
# 词汇书数据
|
||
vocabulary_books = [
|
||
{
|
||
'id': 'cet4_core_2500',
|
||
'name': '大学英语四级核心词汇',
|
||
'description': '涵盖CET-4考试核心词汇2500个',
|
||
'category': 'CET-4核心词汇',
|
||
'level': 'intermediate',
|
||
'total_words': 2500,
|
||
'icon': '📚',
|
||
'color': '#4CAF50',
|
||
'sort_order': 1
|
||
},
|
||
{
|
||
'id': 'cet6_core_3000',
|
||
'name': '大学英语六级核心词汇',
|
||
'description': '涵盖CET-6考试核心词汇3000个',
|
||
'category': 'CET-6核心词汇',
|
||
'level': 'advanced',
|
||
'total_words': 3000,
|
||
'icon': '📖',
|
||
'color': '#2196F3',
|
||
'sort_order': 2
|
||
},
|
||
{
|
||
'id': 'toefl_high_3500',
|
||
'name': '托福高频词汇',
|
||
'description': '托福考试高频词汇3500个',
|
||
'category': 'TOEFL高频词汇',
|
||
'level': 'advanced',
|
||
'total_words': 3500,
|
||
'icon': '🎓',
|
||
'color': '#FF9800',
|
||
'sort_order': 3
|
||
},
|
||
{
|
||
'id': 'ielts_high_3500',
|
||
'name': '雅思高频词汇',
|
||
'description': '雅思考试高频词汇3500个',
|
||
'category': 'IELTS高频词汇',
|
||
'level': 'advanced',
|
||
'total_words': 3500,
|
||
'icon': '🌟',
|
||
'color': '#9C27B0',
|
||
'sort_order': 4
|
||
},
|
||
{
|
||
'id': 'primary_core_1000',
|
||
'name': '小学英语核心词汇',
|
||
'description': '小学阶段必备核心词汇1000个',
|
||
'category': '小学核心词汇',
|
||
'level': 'beginner',
|
||
'total_words': 1000,
|
||
'icon': '🎈',
|
||
'color': '#E91E63',
|
||
'sort_order': 5
|
||
},
|
||
{
|
||
'id': 'junior_core_1500',
|
||
'name': '初中英语核心词汇',
|
||
'description': '初中阶段必备核心词汇1500个',
|
||
'category': '初中核心词汇',
|
||
'level': 'elementary',
|
||
'total_words': 1500,
|
||
'icon': '📝',
|
||
'color': '#00BCD4',
|
||
'sort_order': 6
|
||
},
|
||
{
|
||
'id': 'senior_core_3500',
|
||
'name': '高中英语核心词汇',
|
||
'description': '高中阶段必备核心词汇3500个',
|
||
'category': '高中核心词汇',
|
||
'level': 'intermediate',
|
||
'total_words': 3500,
|
||
'icon': '📕',
|
||
'color': '#FF5722',
|
||
'sort_order': 7
|
||
},
|
||
{
|
||
'id': 'business_core_1000',
|
||
'name': '商务英语核心词汇',
|
||
'description': '商务场景常用核心词汇1000个',
|
||
'category': '商务英语',
|
||
'level': 'intermediate',
|
||
'total_words': 1000,
|
||
'icon': '💼',
|
||
'color': '#607D8B',
|
||
'sort_order': 8
|
||
}
|
||
]
|
||
|
||
def main():
|
||
try:
|
||
# 连接数据库
|
||
conn = mysql.connector.connect(**db_config)
|
||
cursor = conn.cursor()
|
||
|
||
print("⏩ 跳过表创建,直接插入数据(表应该已由GORM自动创建)")
|
||
|
||
# 插入词汇书数据
|
||
insert_sql = """
|
||
INSERT INTO `ai_vocabulary_books`
|
||
(`id`, `name`, `description`, `category`, `level`, `total_words`, `icon`, `color`, `is_system`, `is_active`, `sort_order`)
|
||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, TRUE, TRUE, %s)
|
||
ON DUPLICATE KEY UPDATE
|
||
`name` = VALUES(`name`),
|
||
`description` = VALUES(`description`),
|
||
`category` = VALUES(`category`),
|
||
`level` = VALUES(`level`),
|
||
`total_words` = VALUES(`total_words`),
|
||
`icon` = VALUES(`icon`),
|
||
`color` = VALUES(`color`),
|
||
`sort_order` = VALUES(`sort_order`)
|
||
"""
|
||
|
||
for book in vocabulary_books:
|
||
cursor.execute(insert_sql, (
|
||
book['id'],
|
||
book['name'],
|
||
book['description'],
|
||
book['category'],
|
||
book['level'],
|
||
book['total_words'],
|
||
book['icon'],
|
||
book['color'],
|
||
book['sort_order']
|
||
))
|
||
print(f"✅ 插入词汇书: {book['name']}")
|
||
|
||
conn.commit()
|
||
print(f"\n🎉 成功插入 {len(vocabulary_books)} 个词汇书!")
|
||
|
||
# 查询验证
|
||
cursor.execute("SELECT COUNT(*) FROM ai_vocabulary_books")
|
||
count = cursor.fetchone()[0]
|
||
print(f"📊 当前数据库中共有 {count} 个词汇书")
|
||
|
||
except mysql.connector.Error as err:
|
||
print(f"❌ 数据库错误: {err}")
|
||
finally:
|
||
if cursor:
|
||
cursor.close()
|
||
if conn:
|
||
conn.close()
|
||
|
||
if __name__ == '__main__':
|
||
main()
|