#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 创建示例分类数据 """ import sys import os # 添加项目路径 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from app import create_app from app.models.product import Category from config.database import db def create_sample_categories(): """创建示例分类数据""" app = create_app() with app.app_context(): print("=== 创建示例分类数据 ===\n") # 检查是否已有分类 if Category.query.count() > 0: print("⚠️ 数据库中已有分类数据,是否继续添加?(y/N): ", end="") if input().strip().lower() != 'y': return # 创建示例分类数据 categories_data = [ # 一级分类 {'name': '数码电子', 'parent_id': 0, 'level': 1, 'sort_order': 1}, {'name': '服装鞋帽', 'parent_id': 0, 'level': 1, 'sort_order': 2}, {'name': '食品饮料', 'parent_id': 0, 'level': 1, 'sort_order': 3}, {'name': '家居生活', 'parent_id': 0, 'level': 1, 'sort_order': 4}, {'name': '图书文具', 'parent_id': 0, 'level': 1, 'sort_order': 5}, ] # 创建一级分类 level1_categories = {} for cat_data in categories_data: category = Category(**cat_data) db.session.add(category) db.session.flush() # 获取ID level1_categories[cat_data['name']] = category.id print(f"✅ 创建一级分类: {cat_data['name']}") # 二级分类数据 level2_data = [ # 数码电子子分类 {'name': '手机通讯', 'parent_id': level1_categories['数码电子'], 'level': 2, 'sort_order': 1}, {'name': '电脑办公', 'parent_id': level1_categories['数码电子'], 'level': 2, 'sort_order': 2}, {'name': '相机摄像', 'parent_id': level1_categories['数码电子'], 'level': 2, 'sort_order': 3}, # 服装鞋帽子分类 {'name': '男装', 'parent_id': level1_categories['服装鞋帽'], 'level': 2, 'sort_order': 1}, {'name': '女装', 'parent_id': level1_categories['服装鞋帽'], 'level': 2, 'sort_order': 2}, {'name': '运动鞋', 'parent_id': level1_categories['服装鞋帽'], 'level': 2, 'sort_order': 3}, # 食品饮料子分类 {'name': '零食小食', 'parent_id': level1_categories['食品饮料'], 'level': 2, 'sort_order': 1}, {'name': '饮料冲调', 'parent_id': level1_categories['食品饮料'], 'level': 2, 'sort_order': 2}, {'name': '生鲜食品', 'parent_id': level1_categories['食品饮料'], 'level': 2, 'sort_order': 3}, ] # 创建二级分类 level2_categories = {} for cat_data in level2_data: category = Category(**cat_data) db.session.add(category) db.session.flush() level2_categories[cat_data['name']] = category.id print(f" ├─ 创建二级分类: {cat_data['name']}") # 三级分类数据 level3_data = [ # 手机通讯子分类 {'name': '智能手机', 'parent_id': level2_categories['手机通讯'], 'level': 3, 'sort_order': 1}, {'name': '手机配件', 'parent_id': level2_categories['手机通讯'], 'level': 3, 'sort_order': 2}, # 男装子分类 {'name': 'T恤', 'parent_id': level2_categories['男装'], 'level': 3, 'sort_order': 1}, {'name': '衬衫', 'parent_id': level2_categories['男装'], 'level': 3, 'sort_order': 2}, {'name': '牛仔裤', 'parent_id': level2_categories['男装'], 'level': 3, 'sort_order': 3}, # 零食小食子分类 {'name': '饼干糕点', 'parent_id': level2_categories['零食小食'], 'level': 3, 'sort_order': 1}, {'name': '坚果炒货', 'parent_id': level2_categories['零食小食'], 'level': 3, 'sort_order': 2}, ] # 创建三级分类 for cat_data in level3_data: category = Category(**cat_data) db.session.add(category) print(f" └─ 创建三级分类: {cat_data['name']}") # 提交数据 db.session.commit() print(f"\n✅ 示例分类数据创建完成!") print(f"一级分类: {len(categories_data)} 个") print(f"二级分类: {len(level2_data)} 个") print(f"三级分类: {len(level3_data)} 个") print(f"总计: {len(categories_data) + len(level2_data) + len(level3_data)} 个分类") print(f"\n访问地址: http://localhost:5000/admin/products/categories") if __name__ == '__main__': create_sample_categories()