112 lines
4.7 KiB
Python
112 lines
4.7 KiB
Python
#!/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()
|