前言
最近有空整理了一下
写这个邀请树纯粹是一时冲动?
也许吧-.-看U2的邀请查询系统感觉挺好玩的
然后又想看Admin这棵树有多大(flag 做完发现浏览器撑不住了
然后发现自己好菜啊(
调查
主要的几个方案:
数据怎么获取:PY啊
前端:Echarts及其相关语言的其他库(pyechart等)、d3js等基于js的一些可视化工具
后端:自己喜欢就好….
最终方案
数据:PY
前端:Echart请求api返回子树的json
后端:
现在方案:根据PY到的数据将所有没有邀请人的节点串到一个不存在的节点上,将森林串成一棵树,那么我们任何要查询的子树都在这棵树上了,利用AnyTree@Python这个库export_to_json 生成full.json,然后将full.json放到data里。 当api获取到要查询的username时在full.json里查询这个名字将然后根据输入的username对应的uid在树上搜索一通就可以获取到对应的sub-tree,然后把sub-tree生成一个json文件保存到本地(做一个辣鸡缓存)然后供前端查询
原方案:利用AnyTree@Python的import 导入这棵树 在树里查
性能问题:不知道为什么AnyTree的import肥肠的慢…大概十万个点导入花了40S…
最优方案:在server启动的时候就把整棵树读到内存里 然后在内存查 大概会有一点点效率差别吧….
本人擅长口胡,建议去GitHub查看 https://github.com/yezi1000/invite-tree
代码很丑 有问题可以留言或者issue…虽然我觉得也没人会star(
无限期咕咕咕
经过评估后发现前端需要全部重写
数据库类型也需要修改 以下全部作废
施工中 仅作存档 代码后续会开源至GitHub
感谢U2-invite-tree的前端
爬虫数据获取是在Developer_HZH 的基础上修改而来
感谢以上两位
不知道放啥歌,放首八爷的loser吧
没学过PY google拼拼凑凑出来的 获取有效信息部分很绕 很丑 虽然我知道可以用class获取..
~~Update info: