def tree(): data = [{ "children": [{ "children": [], "name": "海林" }, { "children": [], "name": "道固" }, { "children": [], "name": "我" }], "name": "雄哥" }] tree = Tree("雄哥的小弟阵容") tree.add("", data) # tree.render() return render_template( 'tree.html', tree=tree.render_embed(), host=REMOTE_HOST, script_list=tree.get_js_dependencies(), )
def tree_chart(): with codecs.open("../data/GDP_data.json",mode='r',encoding="utf-8") as f: j = json.load(f) data = [j] tree = Tree(title="World country GDP", width=1000, height=600, title_pos="center") tree.add(name="First", data=data) return tree
def relation(): dbconn = pymysql.connect(host="***", user="******", password="******", port=3306, charset="utf8", db="***") #读取数据库JSON数据 sql = "select json from words_relation_json where id =1" cursor = dbconn.cursor() cursor.execute(sql) data = cursor.fetchall() dbconn.commit() cursor.close() dbconn.close() #字符串转JSON result = json.loads(data[0][0].replace("'", "\"")) #树图 tree = Tree(width=2000, height=2400) tree.add("", result, tree_collapse_interval=1) tree.render() javascript_snippet = TRANSLATOR.translate(tree.options) return render_template( "relation.html", chart_id=tree.chart_id, host=REMOTE_HOST, renderer=tree.renderer, my_width="95%", my_height=2400, custom_function=javascript_snippet.function_snippet, options=javascript_snippet.option_snippet, script_list=tree.get_js_dependencies(), )
def redis_status(redis_master=None): db_redis = db_idc.redis_info db_server = db_idc.idc_servers DATA = [] keys = [] if redis_master: try: M_key = defaultdict() try: redis_infos = db_redis.query.with_entities( db_redis.server_id, db_redis.port).all() for infos in redis_infos: try: id, port = infos vals = db_redis.query.with_entities( db_redis.server_id, db_redis.port).filter( and_(db_redis.Master_Host == id, db_redis.Master_Port == port)).all() if vals: RC.hset(M_key, '%s:%s' % (id, port), vals) except: continue except Exception as e: logging.error(e) KEY = 'op_redis_master_lists' RC.delete(KEY) redis_master = redis_master.split(':') server_id = db_server.query.with_entities(db_server.id).filter( db_server.hostname == redis_master[0]).all() if server_id: redis_master[0] = server_id[0][0] RC.lpush(KEY, redis_master) while True: if RC.llen(KEY) > 0: id, port = eval(RC.lpop(KEY)) vals = RC.hget(M_key, '%s:%s' % (id, port)) if vals: key = 'op_redis_nexus_%s:%s' % (id, port) RC.set(key, vals) for val in eval(vals): id, port = val vals = RC.hget(M_key, '%s:%s' % (id, port)) if vals: RC.lpush(KEY, val) else: break id, port = redis_master hostname = RC_CLUSTER.hget('op_server_hostnames', id) if hostname: name = hostname DATA.append({"children": [], "name": '%s:%s' % (name, port)}) mkey = 'op_redis_nexus_%s:%s' % (id, port) keys.append(mkey) for key in keys: name = key.replace('op_redis_nexus_', '').split(':') hostname = RC_CLUSTER.hget('op_server_hostnames', name[0]) if hostname: name[0] = hostname name = ':'.join(name) if RC.exists(key): for val in eval(RC.get(key)): id, port = val key = 'op_redis_nexus_%s:%s' % (id, port) if RC.exists(key): keys.append(key) hostname = RC_CLUSTER.hget('op_server_hostnames', id) if hostname: id = hostname for datas in DATA: if datas['name'] == name: datas["children"].append({ "children": [], "name": '%s:%s' % (id, port) }) else: for data in datas["children"]: if data['name'] == name: data["children"].append({ "children": [], "name": '%s:%s' % (id, port) }) else: for DAT in data["children"]: if DAT['name'] == name: DAT["children"].append({ "children": [], "name": '%s:%s' % (id, port) }) else: for dat in DAT["children"]: if dat['name'] == name: dat["children"].append( { "children": [], "name": '%s:%s' % (id, port) }) else: for da in dat[ "children"]: if da['name'] == name: da["children"].append( { "children": [], "name": '%s:%s' % (id, port) }) else: for dd in da[ "children"]: if dd['name'] == name: dd["children"].append({ "children": [], "name": '%s:%s' % (id, port ) }) else: for d in dd[ "children"]: if d['name'] == name: d["children"].append({"children": [],"name": '%s:%s' % (id, port)}) else: for t in d[ "children"]: if t['name'] == name: t["children"].append({"children": [],"name": '%s:%s' % (id, port)}) else: for tt in t[ "children"]: if tt['name'] == name: tt["children"].append({"children": [],"name": '%s:%s' % (id, port)}) else: for dt in tt[ "children"]: if dt['name'] == name: dt["children"].append({ "children": [], "name": '%s:%s' % ( id, port)}) except Exception as e: logging.error(e) tree = Tree(width='100%', height=600) tree.add("", DATA, tree_symbol_size=10, tree_label_text_size=14, tree_leaves_text_size=12, is_toolbox_show=False) return render_template('redis_status.html', tree=tree)
"name": "defadd.py" }, { "children": [], "name": "definfo.py" }], "name": "function" }, { "children": [], "name": "__init__.py" }, { "children": [], "name": "_config.yml" }, { "children": [], "name": "LICENSE.txt" }, { "children": [], "name": "README.md" }, { "children": [], "name": "setup.py" }], "name": "Redfox" }] tree = Tree("树图文件目录示例", width=1200, height=800) tree.add("", data, tree_collapse_interval=2, tree_layout="radial") tree.render("Redfox1.0.1bc文件目录树.html")
{ "children": [ { "children": [ { "children": [], "name": "J" }, { "children": [], "name": "K" } ], "name": "G" }, { "children": [], "name": "H" } ], "name": "D" } ], "name": "A" } ] tree = Tree("树图示例") tree.add("", data) tree.render()
def redis_status(hostname=None, app_port=None, redis_master=None): try: db_redis = db_idc.redis_info db_server = db_idc.idc_servers BARS = [] DATA = [] tree = None if hostname and app_port: try: for info in ('used_memory', 'hit_rate', 'clients', 'ops'): attrs = [] vals = [] yf = '' for i in range(7): update_date = datetime.datetime.now( ) - datetime.timedelta(days=i) update_date = update_date.strftime('%Y-%m-%d') Key = 'op_redis_status_%s_%s_%s' % (hostname, app_port, update_date) if RC_CLUSTER.exists(Key): infos = RC_CLUSTER.hgetall(Key) attrs.append(update_date) val = infos[info] if 'G' in infos[info]: yf = 'G' val = infos[info].replace('G', '') if 'M' in infos[info]: yf = 'M' val = infos[info].replace('M', '') vals.append(val) bar = Bar(info, title_pos='center', width='100%', height='250px') if info == 'used_memory': bar.add("", attrs, vals, mark_point=["max", "min"], is_yaxislabel_align=True, is_toolbox_show=False, xaxis_interval=0, legend_pos='100%', yaxis_formatter=yf, is_random=True, xaxis_name_size=12, legend_text_size=12) elif info == 'hit_rate': bar.add("", attrs, vals, mark_point=["max", "min"], is_yaxislabel_align=True, is_toolbox_show=False, xaxis_interval=0, legend_pos='100%', yaxis_formatter='%', is_random=True, xaxis_name_size=12, legend_text_size=12) else: bar.add("", attrs, vals, mark_point=["max", "min"], is_yaxislabel_align=True, is_toolbox_show=False, xaxis_interval=0, legend_pos='100%', xaxis_name_size=12, legend_text_size=12) BARS.append(bar) except Exception as e: logging.error(e) if redis_master: try: KEY = 'op_redis_master_lists' redis_master = redis_master.split(':') server_id = db_server.query.with_entities(db_server.id).filter( db_server.hostname == redis_master[0]).all() if server_id: redis_master[0] = server_id[0][0] RC.lpush(KEY, redis_master) while True: if RC.llen(KEY) > 0: id, port = eval(RC.lpop(KEY)) vals = db_redis.query.with_entities( db_redis.server_id, db_redis.port).filter( and_(db_redis.Master_Host == id, db_redis.Master_Port == port)).all() if vals: key = 'op_redis_nexus_%s:%s' % (id, port) RC.set(key, str(vals)) for val in vals: RC.lpush(KEY, val) else: break id, port = redis_master hostname = RC_CLUSTER.hget('op_server_hostnames', id) if hostname: name = hostname DATA.append({ "children": [], "name": '%s:%s' % (name, port) }) keys = [] mkey = 'op_redis_nexus_%s:%s' % (id, port) keys.append(mkey) for key in keys: name = key.replace('op_redis_nexus_', '').split(':') hostname = RC_CLUSTER.hget('op_server_hostnames', name[0]) if hostname: name[0] = hostname name = ':'.join(name) if RC.exists(key): for val in eval(RC.get(key)): id, port = val key = 'op_redis_nexus_%s:%s' % (id, port) if RC.exists(key): keys.append(key) hostname = RC_CLUSTER.hget('op_server_hostnames', id) if hostname: id = hostname for datas in DATA: if datas['name'] == name: datas["children"].append({ "children": [], "name": '%s:%s' % (id, port) }) else: for data in datas["children"]: if data['name'] == name: data["children"].append({ "children": [], "name": '%s:%s' % (id, port) }) else: for DAT in data["children"]: if DAT['name'] == name: DAT["children"].append({ "children": [], "name": '%s:%s' % (id, port) }) else: for dat in DAT["children"]: if dat['name'] == name: dat["children"].append( { "children": [], "name": '%s:%s' % (id, port) }) else: for da in dat[ "children"]: if da['name'] == name: da["children"].append({ "children": [], "name": '%s:%s' % (id, port) }) else: for dd in da[ "children"]: if dd['name'] == name: dd["children"].append({"children": [],"name": '%s:%s' % (id, port)}) else: for d in dd[ "children"]: if d['name'] == name: d["children"].append({"children": [],"name": '%s:%s' % (id, port)}) else: for t in d[ "children"]: if t['name'] == name: t["children"].append({"children": [],"name": '%s:%s' % (id, port)}) tree = Tree(width='100%', height=600) tree.add("", DATA, tree_symbol_size=10, tree_label_text_size=14, tree_leaves_text_size=12, is_toolbox_show=False) except Exception as e: logging.error(e) return render_template('redis_status.html', BARS=BARS, hostname=hostname, app_port=app_port, tree=tree) except Exception as e: logging.error(e)