• 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 增删改查()
  • 相关阅读:
    android 从服务器获取新闻数据并显示在客户端
    Java多线程系列之:线程间的通信
    Java多线程系列之:多线程一些基本概念
    Java多线程系列之:内存可见性
    计算机基础
    tomcat系列之六:Tomcat顶层组件
    tomcat系列之五:Tomcat各个组件生命周期
    tomcat系列之四:Tomcat架构(下)
    tomcat系列之三:Tomcat架构
    tomcat系列之二:Servlet规范
  • 原文地址:https://www.cnblogs.com/lixiaomingpython/p/6685687.html
Copyright © 2020-2023  润新知