文档章节

flask直观显示文本对比

鸿弟
 鸿弟
发布于 2016/11/01 18:27
字数 360
阅读 109
收藏 0
点赞 0
评论 0

运维过程中,经常会对一些服务的配置文件进行修改,因此,用flask实现修改后的配置文件对比还是比较直观的。本文中介绍使用flask框架实现对文本文件的对比。

python使用difflib模块的HtmlDiff可以生成网页格式的对比,对比的结果还是比较好看的,截取其中部分对比的截图如下:

实现方法:

在flask的view上直接return对比的结果就行,view的代码如下:

#测试diff接口
@app.route('/test/diff', methods=['GET', 'POST'])
def test_diff():
    diffresult = modules.web_diff_file('/etc/ssh/sshd_config', '/etc/ssh/sshd_config.bak20161101')
    return diffresult

有时候对比出来可能会出现乱码现象,可使用

return diffresult, 200, {'Content-Type': 'text/html; charset=gbk'}

解决乱码问题。

 

使用的modules中的函数定义如下:

#读文件
def readfile(filename):
    try:
        fileHandle = open(filename, 'rb')
        text = fileHandle.read().splitlines()
        fileHandle.close()
        return text
    except IOError as error:
        print('Read file Error:' + str(error))
        sys.exit()
#对两个文件进行对比
def web_diff_file(file1, file2):
    text1_lines = readfile(file1)
    text2_lines = readfile(file2)
    d = difflib.HtmlDiff()
    return d.make_file(text1_lines, text2_lines)

对配置文件进行读取,然后直接使用python的difflib库的HtmlDiff方法即可在网页实现比较直观的对比结果,更新配置自动化的时候,可以在配置下发前进行对比。

实现完成对vim /etc/ssh/sshd_config.bak20161101进行编辑,修改些内容,就可以看出对比的效果了,如下:

© 著作权归作者所有

共有 人打赏支持
鸿弟
粉丝 65
博文 51
码字总数 33082
作品 0
杭州
运维
慕课网Flask高级编程实战-11.Python与Flask的结合应用

11.1 重置密码流程分析 重置密码主要流程如下: 其中,发送重置密码邮件后的流程如下: """Like :meth: but aborts with 404 if not found instead of returning None.""" rv = self.first(...

Meet相识_bfa5 ⋅ 06/14 ⋅ 0

有哪些比较工具

当我们需要比较两个文件,图片,程序等的差异的时候,我们需要用软件在进行比较,不如太耗时间尽力。但是现今网络上有着很多种文件比较工具,大家不知道那些比较好用。下面我们就来给大家介绍...

Navicat数据库管理工具 ⋅ 2016/06/07 ⋅ 0

怎样用Beyond Compare比较两个txt文件

我们在日常的工作中会接触到很多的txt文本文件,有时候因为工作需要可能要比较两个txt文件的差异,无奈文本文件无任何规律可言,找到不同之处,十分困难。这个时候我们就可以使用Beyond Comp...

Navicat数据库管理工具 ⋅ 2016/05/03 ⋅ 0

Flask框架 —— 从入门到精通

更新日期 :2016 - 2 - 26 有开源网友提醒,故为了可阅读性更新排版。 Hello World 作者背景 应用程序简介 要求 安装 Flask 在 Flask 中的 “Hello, World” 下一步? 模板 回顾 为什么我们需...

水果糖 ⋅ 2016/02/26 ⋅ 0

Python Web 部署: 使用 flask + gunicorn + supervisor + nginx

flask   python 的服务器框架 gunicorn   webservice,WSGI 的容器 supervisor   进程管理工具 nginx   一个高性能的 web 服务器 创建项目 先为应用创建一个路径 构建 Python 的虚拟环...

SSBun ⋅ 2017/06/01 ⋅ 0

比较二进制工具哪家强?

二进制是计算技术中广泛采用的一种数制,用0和1两个数码来表示的数。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。 如果两份二进制文件存在差异,肉...

Navicat数据库管理工具 ⋅ 2016/05/16 ⋅ 0

《Flask Web开发:基于Python的Web应用开发实战》.PDF

简介 本书不仅适合初级Web开发人员学习阅读,更是Python程序员用来学习高级Web开发技术的优秀参考书。 • 学习Flask应用的基本结构,编写示例应用; • 使用必备的组件,包括模板、数据库、W...

jackmk ⋅ 2017/08/12 ⋅ 0

scrapy学习实例(四)采集淘宝数据并展示

本节代码 : zhangslob/Taobao_duoshou 万水千山总是情,给个star行不行 铛铛铛,懒惰了一段时间,咱接着学Scrapy。这一期玩点新花样,使用Flask展示我们的数据。效果如下图: 有些重复的 ╮...

崔斯特 ⋅ 2017/12/19 ⋅ 0

Flask / MongoDB 搭建简易图片服务器

1、前期准备 通过 pip 或 easy_install 安装了 pymongo 之后, 就能通过 Python 调教 mongodb 了. 接着安装个 flask 用来当 web 服务器. 当然 mongo 也是得安装的. 对于 Ubuntu 用户, 特别是使...

xrzs ⋅ 2013/10/09 ⋅ 1

那些年我们学Flask-SQLAlchemy,实现数据库操作,分页等功能

那些年我们学Flask-SQLAlchemy 实现数据库操作,分页等功能 Flask-SQLAlchemy库让flask更方便的使用SQLALchemy,是一个强大的关系形数据库框架,既可以使用orm方式操作数据库,也可以使用原始的...

MK先生 ⋅ 2016/10/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 59分钟前 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 7

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部