1

一直在寻找一个比较好用的mac下的Mysql工具
试过一下几个:
Navicat 实在是卡
tableplus 还算是好用吧,但是比较蛋疼的是收费
Sequel Pro 刚开始觉得不好用,现在觉得比较完美,需要调教

直入主题:
1.Sequel Pro 设置提示延迟为0.5s 这个我之前一直用默认的,提示超级慢,非常难受,调整过后非常流畅
2.单行按列显示,这个功能tableplus的非常好用,我一直希望能有一个这样的功能
3.SQL语句格式化 https://www.jianshu.com/p/bbf...
说搞就搞,先看一下最终效果:
已经非常完美了,可以展示出表格和按照关键字进行过滤

clipboard.png

起源:
先是本来要搞一个SQL格式化工具,查到下面这两个文章,受官方导出JSON的启发吧,查阅官方文档
https://www.jianshu.com/p/bbf...
https://sequelpro.com/docs/bu...

1.配置Sequel Pro bundle选项 Bundles -> Bundle Editor -> Date table 点击show -> 然后点击左下角+号 ,添加一个新的,按下图设置即可

bundle scope : Date Table
Input: select rows(csv)
output: show as HTML
也可以选择 SHOW AS HTML TOOLTIP 进行直接提示

clipboard.png

1.使用Python解析出相应的内容csv格式的,代码比较简单,主要是python不熟
2.按照table固定格式输出HTML即可
3.通过js进行过滤table中的元素

#!/usr/bin/python
#coding=utf-8

import urllib2, urllib

import json

import sys

reload(sys)

sys.setdefaultencoding('utf-8')


data = sys.stdin.readlines()

#过滤掉没数据表格
if len(data) > 0 :
    print '<input type="text" id="filterName"  style="width:140px;height:30px"/> <button id="filterBtn">filter</button>'
    print '<button id="resetBtn">reset</button><br>'
else:
    exit(0)

header = data[0].strip('\n');
headers = header.split(",")

rowdata = data[1];
rowdatas = rowdata.split(",")
content_tab_row = '<table border="1" cellspacing="0">  '
row_tr  = ""
for index in range(len(headers)):
    row_tr = row_tr  +  "  <tr><th>" +headers[index].strip('"') +" </th><th>" +rowdatas[index].strip('"') +"</th> " + "</tr>"

content_tab_row = content_tab_row + row_tr + "</table>"
print content_tab_row

#引入jQuery
print '<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.1.min.js"></script>'
print '<script type="text/javascript">'
print 'jQuery.expr[":"].contains=function(a,i,m){return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0};'
print '$("#filterBtn").click(function(){var keyword=$("#filterName").val();if(keyword==undefined||keyword==""){return}$("table tbody tr").hide().filter(":contains(\'"+(keyword)+"\')").show()});'
print '$("#resetBtn").click(function(){window.location.reload()});'
print '</script>'

这样就算是大功告成了。

遇到问题:
刚开始觉得实现了展示即可,但是还是非常想实现过滤功能的,这个功能很常用,
查看文档发现可以支持SHOW AS HTML 是支持JavaScript的
但是一直尝试不成功,后来发现其实页面导出的就是HTML,那按理说就可以执行js代码,然后进行简单测试发现真的可以实现这个功能。
所以后来又添加上了filter功能。
Github :https://github.com/colincatsu...

你也可以直接下载 :https://github.com/colincatsu...


nohup
160 声望9 粉丝