ToolCover-自动为你的命令行程序加上UI

作者: williamfzc | 来源:发表于2018-03-25 17:05 被阅读193次

    github项目点这里
    欢迎fork/star/issue/PR。

    • 以网页的形式,旨在用最简单的方式为所有命令行程序提供一个跨平台、美观的交互方案。
    • 基于flask + bootstrap,python3。
    • 目前只支持linux与mac系统。

    灵感

    对于python来说UI是个远古难题,官方的tkinter非常老气。前段时间尝试了各种第三方工具之后第一感觉都是,太麻烦了。通常情况下,这些UI框架的学习成本都不低,在编写工具之余还需要费心研究UI的制作很容易让开发者烦躁,在工作中深有体会。

    个人认为,未来的应用肯定是趋向web化的,web应用能够很好地适配到不同平台,一次开发多处使用,那么,为什么我们不直接用web作为交互手段呢?

    其实在这方面已经有flexx作为先驱,做的也很好,但开发过程远称不上简单,仍然需要对源码进行较大改动。

    那么,有没有一种完全无缝对接的UI解决方案呢?有的。

    效果

    先看一下效果。如果我们的源码是这样:

    你的源码

    经过ToolCover的渲染,他将变成一个可以交互的web页面:

    效果

    你只需要在编程的时候正常使用标准输入输出,就可以渲染出合适的web页面,并且用它进行交互。

    当然,你也可以不按上面的实例来写,你只需要考虑在终端中输出与输入应该是什么样,ToolCover会自动完成这个过程,没有学习成本。

    使用

    把大象放进冰箱一共需要几步?

    1. 打开门
    2. 把大象塞进去
    3. 关上门

    所有事情都应该如此简单。你只需要:

    1. 把程序拷到app/packages
    2. 在config.py配置入口
    3. 运行python manage.py

    然后就可以愉快的访问本地5000端口进行交互了!

    源码自带教程,git clone之后可以直接运行查阅。推荐直接参照它学习使用。
    位置app/packages/test_app

    使用场景

    • 使用场景多运行于服务器,由客户端访问实现远程控制。
    • 非常适用于为命令行工具提供UI界面。

    优势

    • 非常适用于局域网做展示或者为一系列命令行工具提供交互。
    • 经过简单配置就可以直接将命令行工具转变成有UI交互,非常方便。
    • 几乎不需要对源代码进行改动,甚至不需要接触源代码。
    • UI由bootstrap+jinja2实现,html形式展示,跨平台,甚至在手机等移动设备上也可以运行。

    Bug与建议

    目前项目还在继续优化中,有任何建议欢迎通过issue指出。

    相关文章

      网友评论

        本文标题:ToolCover-自动为你的命令行程序加上UI

        本文链接:https://www.haomeiwen.com/subject/ggoaqftx.html