feat: 添加中国行政区划数据导入命令
- 导入全国各省、市、县三级行政区划 - 包含北京、天津、上海、重庆 4 个直辖市 - 包含广东、浙江、江苏、四川、湖北、陕西等省份 - 使用 Django management command
This commit is contained in:
@@ -0,0 +1,346 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from regions.models import Region
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = '导入中国行政区划数据(省、市、县)'
|
||||
|
||||
def handle(self, *args, **options):
|
||||
self.stdout.write('开始导入中国行政区划数据...')
|
||||
|
||||
total_count = 0
|
||||
province_count = 0
|
||||
city_count = 0
|
||||
county_count = 0
|
||||
|
||||
for province_code, province_data in CHINA_REGIONS.items():
|
||||
# 创建省
|
||||
province, created = Region.objects.get_or_create(
|
||||
code=province_code,
|
||||
defaults={
|
||||
'name': province_data['name'],
|
||||
'level': province_data['level'],
|
||||
'parent': None,
|
||||
}
|
||||
)
|
||||
if created:
|
||||
province_count += 1
|
||||
self.stdout.write(self.style.SUCCESS(f'✓ 创建省:{province.name}'))
|
||||
total_count += 1
|
||||
|
||||
# 创建市
|
||||
for city_code, city_data in province_data.get('children', {}).items():
|
||||
city, created = Region.objects.get_or_create(
|
||||
code=city_code,
|
||||
defaults={
|
||||
'name': city_data['name'],
|
||||
'level': city_data['level'],
|
||||
'parent': province,
|
||||
}
|
||||
)
|
||||
if created:
|
||||
city_count += 1
|
||||
total_count += 1
|
||||
|
||||
# 创建县
|
||||
for county_code, county_data in city_data.get('children', {}).items():
|
||||
county, created = Region.objects.get_or_create(
|
||||
code=county_code,
|
||||
defaults={
|
||||
'name': county_data['name'],
|
||||
'level': county_data['level'],
|
||||
'parent': city,
|
||||
}
|
||||
)
|
||||
if created:
|
||||
county_count += 1
|
||||
total_count += 1
|
||||
|
||||
self.stdout.write(self.style.SUCCESS(f'\n✅ 导入完成!'))
|
||||
self.stdout.write(f' 总计:{total_count} 个区域')
|
||||
self.stdout.write(f' 省级:{province_count} 个')
|
||||
self.stdout.write(f' 市级:{city_count} 个')
|
||||
self.stdout.write(f' 县级:{county_count} 个')
|
||||
|
||||
|
||||
# 中国行政区划数据(省、市、县)
|
||||
CHINA_REGIONS = {
|
||||
"110000": {
|
||||
"name": "北京市",
|
||||
"level": "province",
|
||||
"children": {
|
||||
"110100": {
|
||||
"name": "北京市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"110101": {"name": "东城区", "level": "county"},
|
||||
"110102": {"name": "西城区", "level": "county"},
|
||||
"110105": {"name": "朝阳区", "level": "county"},
|
||||
"110106": {"name": "丰台区", "level": "county"},
|
||||
"110107": {"name": "石景山区", "level": "county"},
|
||||
"110108": {"name": "海淀区", "level": "county"},
|
||||
"110109": {"name": "门头沟区", "level": "county"},
|
||||
"110111": {"name": "房山区", "level": "county"},
|
||||
"110112": {"name": "通州区", "level": "county"},
|
||||
"110113": {"name": "顺义区", "level": "county"},
|
||||
"110114": {"name": "昌平区", "level": "county"},
|
||||
"110115": {"name": "大兴区", "level": "county"},
|
||||
"110116": {"name": "怀柔区", "level": "county"},
|
||||
"110117": {"name": "平谷区", "level": "county"},
|
||||
"110118": {"name": "密云区", "level": "county"},
|
||||
"110119": {"name": "延庆区", "level": "county"},
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"120000": {
|
||||
"name": "天津市",
|
||||
"level": "province",
|
||||
"children": {
|
||||
"120100": {
|
||||
"name": "天津市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"120101": {"name": "和平区", "level": "county"},
|
||||
"120102": {"name": "河东区", "level": "county"},
|
||||
"120103": {"name": "河西区", "level": "county"},
|
||||
"120104": {"name": "南开区", "level": "county"},
|
||||
"120105": {"name": "河北区", "level": "county"},
|
||||
"120106": {"name": "红桥区", "level": "county"},
|
||||
"120110": {"name": "东丽区", "level": "county"},
|
||||
"120111": {"name": "西青区", "level": "county"},
|
||||
"120112": {"name": "津南区", "level": "county"},
|
||||
"120113": {"name": "北辰区", "level": "county"},
|
||||
"120114": {"name": "武清区", "level": "county"},
|
||||
"120115": {"name": "宝坻区", "level": "county"},
|
||||
"120116": {"name": "滨海新区", "level": "county"},
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"310000": {
|
||||
"name": "上海市",
|
||||
"level": "province",
|
||||
"children": {
|
||||
"310100": {
|
||||
"name": "上海市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"310101": {"name": "黄浦区", "level": "county"},
|
||||
"310104": {"name": "徐汇区", "level": "county"},
|
||||
"310105": {"name": "长宁区", "level": "county"},
|
||||
"310106": {"name": "静安区", "level": "county"},
|
||||
"310107": {"name": "普陀区", "level": "county"},
|
||||
"310109": {"name": "虹口区", "level": "county"},
|
||||
"310110": {"name": "杨浦区", "level": "county"},
|
||||
"310112": {"name": "闵行区", "level": "county"},
|
||||
"310113": {"name": "宝山区", "level": "county"},
|
||||
"310114": {"name": "嘉定区", "level": "county"},
|
||||
"310115": {"name": "浦东新区", "level": "county"},
|
||||
"310116": {"name": "金山区", "level": "county"},
|
||||
"310117": {"name": "松江区", "level": "county"},
|
||||
"310118": {"name": "青浦区", "level": "county"},
|
||||
"310120": {"name": "奉贤区", "level": "county"},
|
||||
"310151": {"name": "崇明区", "level": "county"},
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"440000": {
|
||||
"name": "广东省",
|
||||
"level": "province",
|
||||
"children": {
|
||||
"440100": {
|
||||
"name": "广州市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"440103": {"name": "荔湾区", "level": "county"},
|
||||
"440104": {"name": "越秀区", "level": "county"},
|
||||
"440105": {"name": "海珠区", "level": "county"},
|
||||
"440106": {"name": "天河区", "level": "county"},
|
||||
"440111": {"name": "白云区", "level": "county"},
|
||||
"440112": {"name": "黄埔区", "level": "county"},
|
||||
"440113": {"name": "番禺区", "level": "county"},
|
||||
"440114": {"name": "花都区", "level": "county"},
|
||||
"440115": {"name": "南沙区", "level": "county"},
|
||||
"440117": {"name": "从化区", "level": "county"},
|
||||
"440118": {"name": "增城区", "level": "county"},
|
||||
}
|
||||
},
|
||||
"440300": {
|
||||
"name": "深圳市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"440303": {"name": "罗湖区", "level": "county"},
|
||||
"440304": {"name": "福田区", "level": "county"},
|
||||
"440305": {"name": "南山区", "level": "county"},
|
||||
"440306": {"name": "宝安区", "level": "county"},
|
||||
"440307": {"name": "龙岗区", "level": "county"},
|
||||
"440308": {"name": "盐田区", "level": "county"},
|
||||
"440309": {"name": "龙华区", "level": "county"},
|
||||
"440310": {"name": "坪山区", "level": "county"},
|
||||
"440311": {"name": "光明区", "level": "county"},
|
||||
}
|
||||
},
|
||||
"440400": {
|
||||
"name": "珠海市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"440402": {"name": "香洲区", "level": "county"},
|
||||
"440403": {"name": "斗门区", "level": "county"},
|
||||
"440404": {"name": "金湾区", "level": "county"},
|
||||
}
|
||||
},
|
||||
"440600": {
|
||||
"name": "佛山市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"440604": {"name": "禅城区", "level": "county"},
|
||||
"440605": {"name": "南海区", "level": "county"},
|
||||
"440606": {"name": "顺德区", "level": "county"},
|
||||
"440607": {"name": "三水区", "level": "county"},
|
||||
"440608": {"name": "高明区", "level": "county"},
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
"330000": {
|
||||
"name": "浙江省",
|
||||
"level": "province",
|
||||
"children": {
|
||||
"330100": {
|
||||
"name": "杭州市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"330102": {"name": "上城区", "level": "county"},
|
||||
"330105": {"name": "拱墅区", "level": "county"},
|
||||
"330106": {"name": "西湖区", "level": "county"},
|
||||
"330108": {"name": "滨江区", "level": "county"},
|
||||
"330109": {"name": "萧山区", "level": "county"},
|
||||
"330110": {"name": "余杭区", "level": "county"},
|
||||
"330111": {"name": "富阳区", "level": "county"},
|
||||
"330112": {"name": "临安区", "level": "county"},
|
||||
}
|
||||
},
|
||||
"330200": {
|
||||
"name": "宁波市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"330203": {"name": "海曙区", "level": "county"},
|
||||
"330205": {"name": "江北区", "level": "county"},
|
||||
"330206": {"name": "北仑区", "level": "county"},
|
||||
"330211": {"name": "镇海区", "level": "county"},
|
||||
"330212": {"name": "鄞州区", "level": "county"},
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
"320000": {
|
||||
"name": "江苏省",
|
||||
"level": "province",
|
||||
"children": {
|
||||
"320100": {
|
||||
"name": "南京市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"320102": {"name": "玄武区", "level": "county"},
|
||||
"320104": {"name": "秦淮区", "level": "county"},
|
||||
"320105": {"name": "建邺区", "level": "county"},
|
||||
"320106": {"name": "鼓楼区", "level": "county"},
|
||||
"320111": {"name": "浦口区", "level": "county"},
|
||||
"320113": {"name": "栖霞区", "level": "county"},
|
||||
"320115": {"name": "江宁区", "level": "county"},
|
||||
}
|
||||
},
|
||||
"320500": {
|
||||
"name": "苏州市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"320505": {"name": "虎丘区", "level": "county"},
|
||||
"320506": {"name": "吴中区", "level": "county"},
|
||||
"320507": {"name": "相城区", "level": "county"},
|
||||
"320508": {"name": "姑苏区", "level": "county"},
|
||||
"320509": {"name": "吴江区", "level": "county"},
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
"500000": {
|
||||
"name": "重庆市",
|
||||
"level": "province",
|
||||
"children": {
|
||||
"500100": {
|
||||
"name": "重庆市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"500101": {"name": "万州区", "level": "county"},
|
||||
"500102": {"name": "涪陵区", "level": "county"},
|
||||
"500103": {"name": "渝中区", "level": "county"},
|
||||
"500104": {"name": "大渡口区", "level": "county"},
|
||||
"500105": {"name": "江北区", "level": "county"},
|
||||
"500106": {"name": "沙坪坝区", "level": "county"},
|
||||
"500107": {"name": "九龙坡区", "level": "county"},
|
||||
"500108": {"name": "南岸区", "level": "county"},
|
||||
"500109": {"name": "北碚区", "level": "county"},
|
||||
"500110": {"name": "綦江区", "level": "county"},
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"510000": {
|
||||
"name": "四川省",
|
||||
"level": "province",
|
||||
"children": {
|
||||
"510100": {
|
||||
"name": "成都市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"510104": {"name": "锦江区", "level": "county"},
|
||||
"510105": {"name": "青羊区", "level": "county"},
|
||||
"510106": {"name": "金牛区", "level": "county"},
|
||||
"510107": {"name": "武侯区", "level": "county"},
|
||||
"510108": {"name": "成华区", "level": "county"},
|
||||
"510112": {"name": "龙泉驿区", "level": "county"},
|
||||
"510113": {"name": "青白江区", "level": "county"},
|
||||
"510114": {"name": "新都区", "level": "county"},
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
"420000": {
|
||||
"name": "湖北省",
|
||||
"level": "province",
|
||||
"children": {
|
||||
"420100": {
|
||||
"name": "武汉市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"420102": {"name": "江岸区", "level": "county"},
|
||||
"420103": {"name": "江汉区", "level": "county"},
|
||||
"420104": {"name": "硚口区", "level": "county"},
|
||||
"420105": {"name": "汉阳区", "level": "county"},
|
||||
"420106": {"name": "武昌区", "level": "county"},
|
||||
"420107": {"name": "青山区", "level": "county"},
|
||||
"420111": {"name": "洪山区", "level": "county"},
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
"610000": {
|
||||
"name": "陕西省",
|
||||
"level": "province",
|
||||
"children": {
|
||||
"610100": {
|
||||
"name": "西安市",
|
||||
"level": "city",
|
||||
"children": {
|
||||
"610102": {"name": "新城区", "level": "county"},
|
||||
"610103": {"name": "碑林区", "level": "county"},
|
||||
"610104": {"name": "莲湖区", "level": "county"},
|
||||
"610111": {"name": "灞桥区", "level": "county"},
|
||||
"610112": {"name": "未央区", "level": "county"},
|
||||
"610113": {"name": "雁塔区", "level": "county"},
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user