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(" " + 用户名) 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     forin ha:
 14         行 = 行.strip('
')
 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("33[94m请选择操作条目序号:33[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("33[94m请输入backend如(www.orgboy.org):33[0m")
 94                        arg.append("backend %s" %增加的back信息)
 95                        增加的server信息 = input("33[94m请输入server如(127.0.0.1):33[0m")
 96                        增加的weight信息 = input("33[94m请输入weight如(20):33[0m")
 97                        增加的maxconn信息 = input("33[94m请输入maxconn如(3000):33[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 
" %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 
" %backend列表3)
108                        f.close()
109                        print("添加成功!!!")
110                 #4是改
111                 #5是退出
112                 elif 操作选项 == 5:
113                    exit()
114           else:
115               print("33[91m请输入正确的序号33[0m")
116               continue
117 增删改查()
原文地址:https://www.cnblogs.com/lixiaomingpython/p/6685687.html