上次已经进行了图解。本次将展示一些主要的函数:
效果图:
下面是服务器展示函数:
#################################### 4 服务器展示函数 srv_record_show () ################ def srv_record_show(srv_zone_name, svr_zones_dict): ############对sys名称进行遍历并加上数字编号########################### print('\n================================================================================') print('(%s)服务器信息如下 : ' % srv_zone_name) print('%-5s %-18s %-18s %-18s %-18s' % ('id', 'name', 'address', 'weight', 'maxconn')) svr_detail = svr_zones_dict[srv_zone_name] for k, v in enumerate(svr_detail, 1): ###用enumerate进行unit_record展示### print('%-5s ' % k, end='') for kk, vv in v.items(): print('%-18s' % vv, end='|') print() print('\n=========================================================================') #########################################################################################效果图如下:
主程序如下:
##################################主程序开始############################################# if __name__ == '__main__': flag = True ### 脚本运行的标志 ### sys_zone_name_ky = 'backend' ### 系统的 名称 ### srv_zone_name_vl = '' ### 服务器组的名称 例如:Oracle sys_cfg_file = 'configuretion.cfg' ###指定sys的配置文件### svr_zones_all_dict = {} ### svr_zones_all_dict字典 记录各服务器的详细信息 ### srv_zone_all_names_dict = {} ### svr_name_ky 字典(由svr_name_ky列表和 数字编号 组成的字典)### global_opt2 = '' srv_zone_name_vl_num = '' while flag: ### 循环M ### os.system('cls') ###清屏### print('\n \033[38m ================================================================') print(' \033[36m 欢迎使用 数据库服务器 配置文件管理平台:\033[0m') print('\033[32m ================================================================') print(''' \033[39m 1. 查询具体服务器\033[0m \033[34m 2. 添加具体服务器\033[0m \033[39m 3. 修改服务器列表\033[0m \033[34m 4. 删除服务器列表\033[0m \033[31m 0. 退出\033[0m ''') print('================================================================') select_num = input('\033[30m 请按 数字键(0~4) 选择:\033[0m') ##################################### 0 退出 exit ############################### if select_num == '0': flag = False continue while select_num in ['1','2','3','4'] : ### 循环 0 ### if select_num == '1':temp_vl = '查看' #temp_vl 为下一步显示对应选定的操作而设置的临时参数 if select_num == '2':temp_vl = '添加' if select_num == '3':temp_vl = '修改' if select_num == '4':temp_vl = '删除' old_select_num = select_num print('\n %-8s ZONE 服务器组信息如下 : ' % sys_zone_name_ky) (srv_zone_all_names_dict, svr_zones_all_dict) = sys_show(sys_cfg_file) print('\033[32m ================================================================') input_content = input('\033[39;1m请输入进行\033[33;1m%s\033[0m操作的服务器组的编号或名称' \ '(返回主菜单,请输入B or b):\033[0m' % temp_vl ) ############################## 对输入值进行过滤 ############################# (srv_zone_name_vl, tmp_flag) = content_filter(input_content, srv_zone_all_names_dict) if srv_zone_name_vl: ###显示对应 srv_zone 下的服务器列表### srv_record_show(srv_zone_name_vl, svr_zones_all_dict) if tmp_flag == False : break ##################################### 1 查询服务器信息 ###################### if select_num == '1': continue ##################################### 2. 更新服务器信息 ##################### while select_num == old_select_num and srv_zone_name_vl: ### 循环1 ### if select_num in [ '3', '4' ]: ###判断修改、删除选项中输入的服务器编号准确性### srv_zone_name_vl_num = input('\033[32;1m请输入\033[33;1m%s\033[0m的服务器的编号,((N|n)返回上级菜单):\033[0m'% temp_vl) if srv_zone_name_vl_num in ['N', 'n']: break if len(srv_zone_name_vl_num) != 0: srv_zone_name_vl_num = input_str2int(srv_zone_name_vl_num) #####################指定具体的server编号进行判断##### elif srv_zone_name_vl_num not in range(1, len(svr_zones_all_dict[srv_zone_name_vl]) + 1): print('超出范围,请重新输入!!!') continue ###srv_zone_name_vl_num不在在服务器组个数范围之内,提示并重新选择### if select_num in [ '2','3' ]: ###添加和修改服务器时进行的操作步骤:更新服务器列表### update_srv_dict = OrderedDict() (update_srv_dict, select_num) = update_svr_dict(update_srv_dict,select_num) if select_num in [ '4' ]: print(svr_zones_all_dict[srv_zone_name_vl][srv_zone_name_vl_num - 1]) #显示被选中删除的服务器列表# if select_num == old_select_num : ###如果在以上操作中没有进行取消操作,则选择参数不会变化,维持原来的用户操作。### update_opt = input('(Y|y)\033[33;1m%s\033[0m此服务器,任意键取消:' % temp_vl) if update_opt in ['y','Y']: if select_num == '2': svr_zones_all_dict[srv_zone_name_vl].append(update_srv_dict) if select_num == '3': svr_zones_all_dict[srv_zone_name_vl][srv_zone_name_vl_num - 1] =update_srv_dict if select_num == '4': del svr_zones_all_dict[srv_zone_name_vl][srv_zone_name_vl_num - 1] wrt2cfg(sys_cfg_file, svr_zones_all_dict) srv_record_show(srv_zone_name_vl, svr_zones_all_dict) print('\033[33;1m%s\033[0m成功!' % temp_vl) else : ###如果在添加、修改、删除过程中,选择了取消,则select_num=5 ,对应操作皆被取消### print("\033[33;1m%s\033[0m被取消" % temp_vl) global_opt2 = input('(Y|y)继续\033[33;1m%s\033[0m本组服务器,(N|n)返回重新选择服务器组,(B|b)返回主菜单:' % temp_vl) ###以上所有操作完成后,根据用户需求,修正select_num 数值,提示用户下一步操作。### if global_opt2 in ['B', 'b']: ### 遇到select_num = '5'时,返回主菜单。### select_num = '5' print("返回主菜单。") elif global_opt2 in ['N', 'n']: ###用户继续选择服务器组,继续进行对原来的操作select_num = old_select_num,。### select_num = old_select_num break else: select_num = old_select_num ###在原来选择的服务器组中,继续进行操作。### else: sys.exit('\033[36m 程序退出,欢迎使用,谢谢! \033[0m') #########################################################################################部分截图如下:
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。