一个python实现的在线MYSQL客户端 支持高亮和自动提示

作者: lepfinder | 来源:发表于2017-03-31 15:01 被阅读0次

    最近花了一点时间做了一个在线的mysql客户端,初衷是提供给内部的开发人员一个BS的查询工具以及在线提交数据库变更单,DBA审核后在线直接修改数据库。最后做出来的效果觉得还不错,觉得可以做成一个通用的东西分享出去。

    介绍

    dbmaster是一个python编写的在线数据库查询客户端,可以有效隔离线上数据库环境,提供了一系列便于开发者使用的特性。操作体验尽量兼容navicat。
    github地址:https://github.com/lepfinder/dbmaster

    特性

    1. 支持SQL语法高亮和自动提示
    2. 支持SQL格式化
    3. 支持执行选中的SQL片段
    4. 支持数据库SCHEMA显示和表结构信息(双击表名显示表结构信息)
    5. 支持快捷键执行,Cmd+R/Ctrl+R执行SQL
    6. 支持查询执行记录
    7. 支持多个语句同时执行,显示多个result结果集

    安装和启动

    pip install virtualenv
    
    下载代码
    
    git clone https://github.com/lepfinder/dbmaster.git
    
    
    # 激活虚拟环境
    virtualenv venv
    . venv/bin/activate
    
    # 安装依赖
    pip install -r requirments.txt
    
    # 创建和初始化数据库
    db.sql
    
    # 配置数据库连接
    config.cfg
    
    # 启动服务器
    gunicorn -w 4 -b 127.0.0.1:8880 wsgi:application
    
    访问: http://localhost:8880/dbmaster/
    

    支持的快捷键

    注意光标在编辑器的时候才会触发。

    • Ctrl+R / Cmd+R 执行sql
    • Ctrl+F / Cmd+F 格式化当前编辑器的sql

    运行效果图

    相关辅助插件

    实现这个客户端用到了一些前后端的开源框架和组件,都是非常优秀的产品,特别感谢这些软件的开发者和维护者。

    Bootstrap

    http://v3.bootcss.com/

    SQL语法高亮和自动提示

    http://codemirror.net/index.html

    sql美化

    http://sqlparse.readthedocs.io/en/latest/intro/#getting-started

    $ pip install sqlparse
    $ python
    >>> import sqlparse
    >>> print(sqlparse.format('select * from foo', reindent=True))
    select *
    from foo
    >>> parsed = sqlparse.parse('select * from foo')[0]
    >>> parsed.tokens
    [<DML 'select' at 0x7f22c5e15368>, <Whitespace ' ' at 0x7f22c5e153b0>, <Wildcard '*' … ]
    >>>
    

    Ztree 渲染数据库和表列表

    http://www.treejs.cn/v3/main.php#_zTreeInfo

    TODO

    • 保存当前查询sql为模板,配置图表渲染
    • 线上数据库变更申请流程

    如果你有什么好的想法,欢迎告诉我(sdlgxxy@qq.com

    相关文章

      网友评论

        本文标题:一个python实现的在线MYSQL客户端 支持高亮和自动提示

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