zoukankan      html  css  js  c++  java
  • 洗礼灵魂,修炼python(79)--全栈项目实战篇(7)—— 多级目录菜单之地址管理系统升级版

    要求:

    1.在上一篇的地址管理系统的基础上做升级改动

    2.添加增删改的功能

    3.尽量的贴近生活常识中的地址管理

     

     

    分析:

    需求不用多说了,干就完了

     

    相关文件源码地址:github

     

     

     

    这次由于要有增删改的操作,所以需要一个数据库文件存储数据,china_map.txt

    {'吉林': {'长春': {'朝阳区': {}, '南关区': {}, '宽城区': {}, '二道区': {}, '绿园区': {}, '双阳区': {}, '德惠市': {}, '九台市': {}, '榆树市': {}, '农安县': {}}, '吉林市': {'船营区': {}, '昌邑区': {}, '龙潭区': {}, '丰满区': {}, '蛟河市': {}, '桦甸市': {}, '舒兰市': {}, '磐石市': {}, '永吉县': {}}, '四平': {'铁西区': {}, '铁东区': {}, '公主岭市': {}, '双辽市': {}, '梨树县': {}, '伊通满族自治县': {}}, '辽源': {'龙山区': {}, '西安区': {}, '东丰县': {}, '东辽县': {}}, '通化': {'东昌区': {}, '二道江区': {}, '梅河口市': {}, '集安市': {}, '通化县': {}, '辉南县': {}, '柳河县': {}}, '白山': {'浑江区': {}, '江源区': {}, '临江市': {}, '抚松县': {}, '靖宇县': {}, '长白朝鲜族自治县': {}}, '松原': {'宁江区': {}, '长岭县': {}, '乾安县': {}, '扶余县': {}, '前郭尔罗斯蒙古族自治县': {}}, '白城': {'洮北区': {}, '洮南市': {}, '大安市': {}, '镇赉县': {}, '通榆县': {}}, '延边州': {'延吉市': {}, '图们市': {}, '敦化市': {}, '和龙市': {}, '珲春市': {}, '龙井市': {}, '汪清县': {}, '安图县': {}}, '长白山管委会': {}}, '四川': {'成都': {'锦江区': {}, '青羊区': {}, '金牛区': {}, '武侯区': {}, '成华区': {}, '青白江区': {}, '龙泉驿区': {}, '新都区': {}, '温江区': {}, '金堂县': {}, '双流县': {}, '郫县': {}, '大邑县': {}, '蒲江县': {}, '新津县': {}, '都江堰市': {}, '彭州市': {}, '崇州市': {}, '邛崃市': {}}, '自贡': {'自流井区': {}, '贡井区': {}, '大安区': {}, '滩区': {}, '荣县': {}, '富顺县': {}}, '攀枝花': {'东区': {}, '西区': {}, '仁和区': {}, '米易县': {}, '盐边县': {}}, '泸州': {'江阳区': {}, '龙马潭区': {}, '纳溪区': {}, '泸县': {}, '合江县': {}, '叙永县': {}, '古蔺县': {}}, '德阳': {'旌阳区': {}, '广汉市': {}, '什邡市': {}, '绵竹市': {}, '中江县': {}, '罗江县': {}}, '绵阳': {'涪城区': {}, '游仙区': {}, '梓潼县': {}, '三台县': {}, '盐亭县': {}, '安县': {}, '平武县': {}, '江油市': {}, '北川羌族自治县': {}}, '广元': {'利州区': {}, '昭化区': {}, '朝天区': {}, '旺苍县': {}, '青川县': {}, '剑阁县': {}, '苍溪县': {}}, '遂宁': {'船山区': {}, '安居区': {}, '射洪县': {}, '蓬溪县': {}, '大英县': {}}, '内江': {'市中区': {}, '东兴区': {}, '资中县': {}, '隆昌县': {}, '威远县': {}}, '乐山': {'市中区': {}, '沙湾区': {}, '五通桥区': {}, '金口河区': {}, '犍为县': {}, '井研县': {}, '夹江县': {}, '沐川县': {}, '峨眉山市': {}, '峨边彝族自治县': {}, '马边彝族自治县': {}}, '南充': {'顺庆区': {}, '高坪区': {}, '嘉陵区': {}, '西充县': {}, '南部县': {}, '蓬安县': {}, '营山县': {}, '仪陇县': {}, '阆中市': {}}, '眉山': {'东坡区': {}, '彭山区': {}, '仁寿县': {}, '丹棱县': {}, '青神县': {}, '洪雅县': {}}, '宜宾': {'翠屏区': {}, '南溪区': {}, '宜宾县': {}, '江安县': {}, '长宁县': {}, '高县': {}, '筠连县': {}, '珙县': {}, '兴文县': {}, '屏山县': {}}, '广安': {'广安区': {}, '前锋区': {}, '邻水县': {}, '武胜县': {}, '岳池县': {}, '华蓥市': {}}, '达州': {'通川区': {}, '达川区': {}, '宣汉县': {}, '开江县': {}, '大竹县': {}, '渠县': {}, '万源市': {}}, '雅安': {'雨城区': {}, '名山区': {}, '荥经县': {}, '汉源县': {}, '石棉县': {}, '天全县': {}, '芦山县': {}, '宝兴县': {}}, '巴中': {'巴州区': {}, '恩阳区': {}, '平昌县': {}, '通江县': {}, '南江县': {}}, '资阳': {'雁江区': {}, '安岳县': {}, '乐至县': {}, '简阳市': {}}, '阿坝藏族羌族自治州': {'马尔康县': {}, '金川县': {}, '小金县': {}, '阿坝县': {}, '若尔盖县': {}, '红原县': {}, '壤塘县': {}, '汶川县': {}, '理县': {}, '茂县': {}, '松潘县': {}, '九寨沟县': {}, '黑水县': {}}, '甘孜藏族自治州': {'康定县': {}, '泸定县': {}, '九龙县': {}, '道孚县': {}, '炉霍县': {}, '甘孜县': {}, '新龙县': {}, '德格县': {}, '白玉县': {}, '石渠县': {}, '色达县': {}, '理塘县': {}, '巴塘县': {}, '乡城县': {}, '稻城县': {}, '得荣县': {}}, '凉山彝族自治州': {'西昌市': {}, '德昌县': {}, '会理县': {}, '会东县': {}, '宁南县': {}, '普格县': {}, '布拖县': {}, '昭觉县': {}, '金阳县': {}, '雷波县': {}, '美姑县': {}, '甘洛县': {}, '越西县': {}, '喜德县': {}, '冕宁县': {}, '盐源县': {}, '木里藏族自治县': {}}}, '北京': {'': {}, '朝阳区': {'': {}}}}
    

     

     

    然后就是主程序文件

    #!usr/bin/env python
    #-*- coding:utf-8 -*-
    
    # author:yangva
    # datetime:2017/12/9 0009 13:16
    
    f=open('chinamap.txt','r')
    china_map_dict = eval(f.read())
    f.close()
    
    current_leval = china_map_dict #实现动态循环
    parent_list = [] #把所有列表父级放进列表
    while True:
        for key in current_leval:
            print(key)
        choice = input('>>>:').strip()
        if len(choice) == 0:continue
        if choice in current_leval:
            temp = input('发现以上数据【%s】有错?你想修改或者删除【%s】吗?【yes/no】>>>:'%(choice,choice))
            while True:
                if temp == 'yes':
                    temp = input('您是修改还是删除?【revise/delete】>>>:')
                    if temp == 'revise':
                        value = input('请输入您的正确值:')
                        current_leval[value] = current_leval.pop(choice)
                        print('已修改')
                        break
                    elif temp == 'delete':
                        current_leval.pop(choice)
                        print('已删除',end='') #为了和后面的异常放在一行组合为一句
                        break
                    else:
                        print('输入有误!已自动进入下一级,需要修改请回退到上一级')
                        break
                elif temp == 'no':break
                else:
                    print('输入有误!已自动进入下一级,需要修改请回退到上一级')
                    break
            try:
                parent_list.append(current_leval)
                current_leval = current_leval[choice] #进入子级
            except KeyError as reson:
                print(reson)
        elif choice == 'back':
            if parent_list:
                current_leval=parent_list.pop() #取出父级(上一级)
        elif choice == 'quit':
            print('程序已退出')
            break
        else:
            while True:
                temp = input('无选项【%s】,你想添加此项吗?【yes/no】>>>:'%choice)
                if temp == 'yes':
                    value = input('请输入您为【%s】添加的数据(可以为空)>>>:'%choice).strip()
                    current_leval[choice] = {value:{}}
                    break
                elif temp == 'no':break
                else:
                    print('输入有误!!')
                    break
    f=open('chinamap.txt','w')
    f.write(str(china_map_dict))
    f.close()
    

     

    结果测试:

    (图片只截取了部分,很简单,不全部展示了)

     

     

    总结优化:

    是的,我的每个项目都有总结优化,因为我觉得从来没有一个完美的程序,它总有可优化的地方,但是目前我们暂时不做得那么高大上,能拿到直接投入使用的那种,不是不可行,是因为目前是项目篇,所以尽量的从简单的入手,后期自然慢慢越来越完善,到时候你再回过头来,想怎么优化都可以

     

    可优化的地方就不用多说了,和前面的一样的

     

     

  • 相关阅读:
    phpcms后台进入地址(包含No permission resources错误)
    phpmyadmin上传大sql文件办法
    ubuntu彻底卸载mysql
    Hdoj 2602.Bone Collector 题解
    一篇看懂词向量
    Hdoj 1905.Pseudoprime numbers 题解
    The Python Challenge 谜题全解(持续更新)
    Hdoj 2289.Cup 题解
    Hdoj 2899.Strange fuction 题解
    Hdoj 2199.Can you solve this equation? 题解
  • 原文地址:https://www.cnblogs.com/Eeyhan/p/8057778.html
Copyright © 2011-2022 走看看