一,程序要求

对后台的数据(以一个文件为例)实现简单的增删改查功能,语句的语法为提示信息的示例

二,代码部分

#! /usr/bin/env python# -*- coding: utf-8 -*-# __author__ = "Jiang Feng"# Date: 2018/12/28import osdef file_processing(backend_data, type, res = None):    if type == 'grep':        with open('aaa', 'r') as read_f:            results = []            tag = False            for read_line in read_f:                if read_line.strip() == backend_data:                    tag = True                    continue                if tag and read_line.strip().startswith('backend'):                    break                if tag:                    results.append(read_line.strip())        return results    elif type == 'change':        with open('aaa','r') as read_f ,open('aaa_new','w') as write_f:            tag = False            for read_line in read_f:                if read_line.strip() == backend_data:                    write_f.write(read_line)                    tag = True                    for server in res:                        server = ' ' * 8 + server                        server = '%s' % server                        write_f.write(server)                    continue                if tag and read_line.startswith('backend'):                    tag = False                if not tag:                    write_f.write(read_line)        os.rename('aaa', 'aaa.bak')        os.rename('aaa_new', 'aaa')        os.remove('aaa.bak')        return '数据已经修改完成'def add(data):    backend = data[0]['backend']    backend_data = 'backend %s' % backend    adddata = data[0]['server']    add_list = grep(backend)    if adddata in add_list:        print('你想要添加的数据已经存在')    else:        add_list.append(adddata)        return file_processing(backend_data, type='change', res=add_list)def remove(data):    backend = data[0]['backend']    backend_data = 'backend %s'%backend    rmdata = data[0]['server']    remove_list = grep(backend)    if rmdata in remove_list:        remove_list.remove(rmdata)        return file_processing(backend_data, type='change', res=remove_list)    else:        print('你想要修改的数据不存在')def change(data):    backend = data[0]['backend']    backend_data = 'backend %s'%backend    old_data = data[0]['server']    new_data = data[1]['server']    grep_list = grep(backend)    if not new_data or old_data not in grep_list:        print('你想要修改的数据不存在')    else:        index = grep_list.index(old_data)        grep_list[index] = new_data        return file_processing(backend_data, type='change', res=grep_list)def grep(data):    backend_data = 'backend %s' %data    return file_processing(backend_data, type='grep')if __name__ == '__main__':    tip = '''        欢迎使用:请根据提示输入数字        1:增(例:[{'backend':'www.baidu2.com','server':'server 2.2.2.9 2.2.2.9 weight 20 maxconn 4000'}])             2:删(例:[{'backend':'www.baidu2.com','server':'server 2.2.2.9 2.2.2.9 weight 20 maxconn 4000'}])        3:改[{'backend':'www.baidu1.com','server':'server 10.10.10.1 10.10.10.1 weight 22 maxconn 2000'},        {'backend':'www.baidu1.com','server':'server 10.10.10.1 10.10.10.1 weight 22 maxconn 22222'}]        4:查(例:www.baidu1.com)        5:退出    '''    msg = {        '1': add,        '2': remove,        '3': change,        '4': grep,    }    while True:        print(tip)        choice = input('请输入你的选项:')        if not choice: continue        if choice == '5': break        data = input('请输入代码:')        if choice != '4':            data = eval(data)        res = msg[choice](data)        print(res)

三,文件中的变量

backend:为了使用查询,获得查询功能返回的列表

backend_data:为了与后台数据进行判断

file_processing:文件处理函数,为了实现程序的解耦性四,附上仿制的后台数据

global        log 127.0.0.1 local2        daemon        maxconn 256        log 127.0.0.1 local2 infodefaults        log global        mode http        timeout connect 5000ms        timeout client 50000ms        timeout server 50000ms        option  dontlognulllisten stats :8888        stats enable        stats uri       /admin        stats auth      admin:1234frontend www.baidu.com        bind 0.0.0.0:80        option httplog        option httpclose        option  forwardfor        log global        acl www hdr_reg(host) -i www.oldboy.org        use_backend www.oldboy.org if wwwbackend www.baidu.combackend www.baidu1.com        server 101.1000.7.9 101.1000.7.9 weight 20 maxconn 30        server 10.10.10.1 10.10.10.1 weight 22 maxconn 2000        server 2.2.2.5 2.2.2.5 weight 20 maxcoon 3333        server 2.2.2.7 2.2.2.7 weight 20 maxcoon 3333backend www.baidu2.com        server 3.3.3.3 3.3.3.3 weight 20 maxconn 3000        server 2.2.22.221 2.2.22.221 weight 20 maxconn 3333backend www.baidu3.com        server 10.10.0.10 10.10.0.10 weight 9999 maxconn 33333333333        server 2.2.2.111 2.2.2.111 weight 20 maxconn 3333

测试的示例代码:

增:[{'backend':'www.baidu2.com','server':'server 2.2.2.9 2.2.2.9 weight 20 maxconn 4000'}]     删例:[{'backend':'www.baidu2.com','server':'server 2.2.2.9 2.2.2.9 weight 20 maxconn 4000'}]改:[{'backend':'www.baidu1.com','server':'server 10.10.10.1 10.10.10.1 weight 22 maxconn 2000'},{'backend':'www.baidu1.com','server':'server 10.10.10.1 10.10.10.1 weight 22 maxconn 22222'}]查:www.baidu1.com

处理增删改_实现数据的增删改查相关推荐

  1. mysql增错误_使用MySQL练习增删改查时因为版本问题出现连接错误

    使用MySQL练习增删改查时出现连接错误,错误提示如下: 2020-02-19 19:53:51.088 ERROR 16328 --- [reate-249798694] com.alibaba.d ...

  2. datatables增删改查php,jQuery+datatables插件实现Ajax加载数据与增删改查功能示例_白峰_前端开发者...

    本文实例讲述了 这里给大家分享一下我在项目中用datatables实现ajax加载数据与增删改查 注意,需要引入  搜索  新增  编辑  删除 职业姓名性别爱好 //点击查找 $(" ...

  3. Redis概述_使用命令对redis的数据进行增删改查_Jedis连接redis进行数据操作_redis进行数据缓存案例

    学习目标 redis 概念 下载安装 命令操作 1. 数据结构 持久化操作 使用Java客户端操作redis Redis 前言(从百度上抄的, 看看了解一下, 懒得排版了) 1. 概念: redis是 ...

  4. php mysql增删改查实例_php连接数据库实现用户数据的增删改查实例

    下面小编就为大家带来一篇使用PHP连接数据库_实现用户数据的增删改查的整体操作示例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 main页面(主页面) 代号 姓名 性 ...

  5. 表、数据的增删改查(所有列、指定列、添加常量、字段起别名、和并列、去除重复、条件查询、比较、判断空、模糊查询)...

    表的增减改查 desc tablename;查看表结构 drop table name;删除表 字段增改删:格式 alter table tablename add column name varch ...

  6. 从零开始的VUE项目-03(数据的增删改查)

    代码svn地址 (用户名:liu,密码;123) 这一篇中,我们要实现的基本就是这么个东西 这个页面就是我们创建的DataManagement.vue页面,我们的主要代码将写在这里面,这个表格我们将用 ...

  7. python 全栈开发,Day62(外键的变种(三种关系),数据的增删改,单表查询,多表查询)...

    一.外键的变种(三种关系) 本节重点: 如何找出两张表之间的关系 表的三种关系 一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出 ...

  8. vue修改数据连接数据库_vue实现数据的增删改查

    在管理员的一些后台页面里,个人中心里的数据列表里,都会有对这些数据进行增删改查的操作.比如在管理员后台的用户列表里,我们可以录入新用户的信息,也可以对既有的用户信息进行修改.在vue中,我们更应该专注 ...

  9. Vue+ElementUI纯前端技术实现对表格数据的增删改查

    Vue+ElementUI纯前端技术实现对表格数据的增删改查 页面展示效果 一.页面结构 分为三个部分 head body 以及script 一般我个人是在head中引入一些组件库 , 还有一些样式 ...

最新文章

  1. Android线程池简单使用
  2. Vue+flask前后端开发
  3. 丑憨批的爬虫笔记5信息标记与提取
  4. 如何让MFC程序关闭按钮失效,也无法右击任务栏关闭窗口来关闭?
  5. springboot 整合mybatis实现curd
  6. 珠心算测验(洛谷-P2141)
  7. java类初始化_Java的类/实例初始化过程
  8. php _runmagicquotes,PHP关于magic quotes的理解
  9. echarts-formatter
  10. 2021年中国车载信息娱乐系统市场趋势报告、技术动态创新及2027年市场预测
  11. 随机矩阵(stochastic matrix)与 PageRank
  12. Vue数据绑定和响应式原理
  13. java类 权限修饰词_java-学习笔记-访问权限修饰词一
  14. Thinking in Java 11.13.1适配器方法惯用法
  15. CV+Deep Learning——网络架构Pytorch复现系列——classification(一:LeNet5,VGG,AlexNet,ResNet)
  16. 豆丁 道客巴巴 千图网 千库网 包图网 我图网 摄图网 巧办网 万方设计 中国知网 VIP会员一个月开通方法,十网通用
  17. linux系统进入管理员命令行,电脑如何进入管理员命令提示符
  18. Android常用布局-02
  19. python|爬虫东宫小说
  20. 萌新谈相机与IMU的标定(转载)

热门文章

  1. Spring自动注入的几种方式
  2. 亚吉铁路 + 蒙内铁路
  3. docker集群——介绍Mesos+Zookeeper+Marathon的Docker管理平台
  4. 作业四: 结对编程项目---四则运算
  5. 使用gdb进行调试入门篇
  6. [转贴]SQL2005数据类型
  7. [转载] python sorted 使用cmp函数时候注意cmp需要传入两个参数,传入两个参数机制的分析
  8. [转载] 【学习Python】Python查看帮助---help函数
  9. 《Linux就该这么学》培训笔记_ch18_使用MariaDB数据库管理系统
  10. 暖心社区(2018-07-17)