3次登陆锁定与backend增删改查
3次登陆锁定:
运行图:
源码:
1 #先新建一个黑名单表,内建了用户:alex.然后再创建一个用户表,用户表内建了用户:李晓明 密码:123 .
#windows电脑需声明表用utf8打开 2 import sys 3 锁定用户表 = open("黑名单表", "r") #打开被锁定的用户名单 从头开始读取文件 4 登录用户表 = open("用户表","r") #打开登录用户的名单:真实用户:李晓明 密码:123 5 i = 0 #设置变量来控制循环次数 6 while i < 3: 7 8 用户名 = input("请输入用户名:") 9 for line in 锁定用户表: #在被锁定的名单搜索用户名 10 if 用户名 == line.strip(): 11 print("用户%s已经被锁定"%用户名) 12 sys.exit() #跳出整个程序 13 14 if len(用户名) == 0: 15 print("用户名不能为空 请重新输入") 16 continue 17 18 用户密码 = input("请输入密码:") 19 T = False #设置变量来跳出循环 20 for line in 登录用户表: 21 if line.split()[0] == 用户名 and line.split()[1] == 用户密码: 22 print("成功!") 23 T = True 24 break 25 26 if T == False: #当变量为输入的用户和密码错误时进入此循环并使次数自增一次 27 if i < 2: 28 print('您的用户或密码有误,请重新输入!') 29 i += 1 30 31 else: 32 print("欢迎用户:%s 来到登录系统" % 用户名) 33 break 34 35 else: 36 锁定用户表 = open("黑名单表", "a") #在文件末尾追加用户名 37 print("你的用户%s已经被锁定!"% 用户名) #将三次输错的用户名写进名单 38 锁定用户表.write("\n" + 用户名) 39 40 41 锁定用户表.close() 42 登录用户表.close()
backend用函数实现增删改查:
运行图:
源码:
1 import os,re,sys #导入3个模块 2 3 from collections import defaultdict,OrderedDict 4 5 原文件 = "haproxy.conf" #给源文件一个变量 6 新文件 = "newhaproxy.conf" #新建一个文件 7 backend地址 = [] 8 server地址= {} 9 backend键字典 = {} 10 server信息= [] 11 server标记 = False #初始化server判断标志位 12 with open("haproxy.conf",'r') as ha: #打开haproxy配置文件 13 for 行 in ha: 14 行 = 行.strip('\n') 15 if re.match('backend',行): #匹配配置文件以backend开头的行 16 backend键 = re.split('\s+',行)[1] 17 backend地址.append(backend键) 18 server信息1 = [] 19 server标记 = True #赋值标志位为真,用来与server关联 20 elif server标记 and re.match('\s+server', 行): #匹配配置文件以server开头的行# 21 server信息 = re.split('\s+', 行) 22 server信息.remove('') 23 server信息1.append(server信息) 24 server地址['server'] = server信息[1] 25 server地址['weight'] = server信息[4] 26 server地址['maxconn'] = server信息[5] 27 backend键字典[backend键] = "name" 28 backend键字典[backend键] = server信息1 29 else: 30 server标记 = False 31 32 #循环 33 操作列表 = ["1.查询backend", "2.删除backend", "3.新增backend","4.修改backend" ,"5.退出"] 34 def 增删改查(): 35 while True: 36 for i in 操作列表: 37 print(i) 38 操作选项 = (input("\033[94m请选择操作条目序号:\033[0m"))#选择操作序号,并加蓝显示www 39 if 操作选项.isdigit(): 40 操作选项 = int((操作选项)) 41 #1是查询 42 if 操作选项 == 1: 43 for i, backend内容 in enumerate(backend地址): 44 print(i, backend内容) 45 backend序号 = input("请输入您要查询的backend的序号:") 46 backend序号 = int(backend序号) 47 for j in range(1): 48 print("==========%s============" % backend地址[backend序号]) 49 for i in backend键字典[backend地址[backend序号]]: 50 print("server %s weigt %s maxconn %s" %(i[1],i[3],i[5])) 51 #2是删除 52 elif 操作选项 == 2: 53 for i, backend内容 in enumerate(backend地址): 54 print(i, backend内容) 55 backend操作选项 = int(input("请选择您要删除backend的序号:")) 56 server显示 = [] 57 for i, backend内容 in enumerate(backend键字典[backend地址[backend操作选项]]): 58 server显示.append("server %s weight %s maxconn %s" % (backend内容[1], backend内容[3], backend内容[5])) 59 print(i, "server %s weight %s maxconn %s" % (backend内容[1], backend内容[3], backend内容[5])) 60 server显示1= str(server显示[0]) 61 print(server显示1) 62 f = open(原文件, "r") 63 f1 = open(新文件, "a+") 64 for i in f: 65 if server显示1 in i: 66 i = i.replace(server显示1, "") 67 f1.write(i) 68 f1.flush() 69 f.close() 70 f1.close() 71 os.remove(原文件) 72 os.rename(新文件, 原文件) 73 backend列表1 = [] 74 backend列表1.append("backend %s" % (backend地址[backend操作选项])) 75 backend列表2 = str(backend列表1[0]) 76 f = open(原文件, "r") 77 f1 = open(新文件, "a+") 78 for i in f: 79 if backend列表2 in i: 80 i = i.replace(backend列表2, "") 81 f1.write(i) 82 f1.flush() 83 f.close() 84 f1.close() 85 os.remove(原文件) 86 os.rename(新文件, 原文件) 87 print("删除成功!!!") 88 #3是增加 89 elif 操作选项 == 3: 90 arg = [] 91 backend键1 = [] 92 backend列表3 = [] 93 增加的back信息 = input("\033[94m请输入backend如(www.orgboy.org):\033[0m") 94 arg.append("backend %s" %增加的back信息) 95 增加的server信息 = input("\033[94m请输入server如(127.0.0.1):\033[0m") 96 增加的weight信息 = input("\033[94m请输入weight如(20):\033[0m") 97 增加的maxconn信息 = input("\033[94m请输入maxconn如(3000):\033[0m") 98 arg.append(" server %s weight %s maxconn %s" %(增加的server信息,增加的weight信息,增加的maxconn信息)) 99 backend键1 = str(arg[0]) 100 f = open(原文件, "a+") 101 f.write("%s \n" %backend键1) 102 f.flush() 103 f.close() 104 backend列表3 = arg[1] 105 backend列表3 = str(backend列表3) 106 f = open(原文件, "a+") 107 f.write("%s \n" %backend列表3) 108 f.close() 109 print("添加成功!!!") 110 #4是改 111 #5是退出 112 elif 操作选项 == 5: 113 exit() 114 else: 115 print("\033[91m请输入正确的序号\033[0m") 116 continue 117 增删改查()