关于python实现知识管理的一些想法

开发 后端
学习python也很久了,无论是基础python语法、还是flaskweb编程、数据血缘关系、人工智能的知识,以及常用web前端、还有工作中零零散散的一些想法,想来想去还是觉得付诸行动更有意义。

[[423319]]

学习python也很久了,无论是基础python语法、还是flaskweb编程、数据血缘关系、人工智能的知识,以及常用web前端、还有工作中零零散散的一些想法,想来想去还是觉得付诸行动更有意义。

初步的想法先从简单的入手,基于flask实现,先整一个基本的web框架,实现页面的动态扩展,上中(左右)下布局,左侧为静态的菜单,右侧为待展现的内容,在右侧页面中再实现一个个小功能,这些小功能用来实现与用户的交互。

后期待完成的事项

1、逐步把通过json、数据库实现菜单的优化

2、实现css、js和html的分离

3、实现flask的蓝图、flask的模板化、flask的ORM映射

4、增强前端交互功能,实现分页

5、不断追加和完善功能

大致的架构是这样的,后续。

上半部分是css,下半部分是页面的主框架,具体如下:

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3.  <head>  
  4.   <meta charset="UTF-8" />  
  5.   <title>个人知识库</title>  
  6.   <style type="text/css"
  7.     *{margin: 0;padding: 0;height: 100%;} 
  8.     .fl { floatleft; } 
  9.  
  10.     #main{margin-top: 15px;} 
  11.     #main .main-area {width: 100%;height:100%;margin: 0 auto;} 
  12.     #main .main-area-content{ width: 100%;height:100%;background: #fff; border: 1px solid #ddd;padding:0 0 15px 0;} 
  13.     #main .main-area-content .logobar{width: 99%;height:5%;overflow: hidden;} 
  14.     #main .main-area-content .statusbar{width: 99%;height:5%;overflow: hidden;} 
  15.     #main .main-area-content .left-menu{width:25%;height:85%;margin: 15px 0 0 0;overflow: hidden;} 
  16.     #main .main-area .content-box{width:70%;height:85%;padding-left: 15px; border-left:1px solid #ddd; margin-left:-1px;} 
  17.     #main .main-area .list{width:99%;border-right: 1px solid #ddd;min-height: 400px;} 
  18.  
  19.     a:link,a:visited{text-decoration: none;color: #fff;}     
  20.     ul,li{list-style: none;}         
  21.     .list ul li{background-color:#467ca2; border:solid 1px #316a91; border-bottom:0;height: auto;} 
  22.     .list ul li a{padding-left: 10px;color: #fff; font-size:12px; display: block; font-weight:bold; height:36px;line-height: 36px;position: relative;} 
  23.     .list ul li .inactive{ background:url(images/off.png) no-repeat 184px center;} 
  24.     .list ul li .inactives{background:url(images/on.png) no-repeat 184px center;}  
  25.     .list ul li ul{display: none;} 
  26.     .list ul li ul li { border-left:0; border-right:0; background-color:#6196bb; border-color:#467ca2;height: 36px;} 
  27.     .list ul li ul li ul{display: none;} 
  28.     .list ul li ul li a{ padding-left:20px;} 
  29.  
  30.     .last{ background-color:#d6e6f1; border-color:#6196bb; } 
  31.     </style>  
  32.  </head>  
  33. <body>  
  34.   <div id="main">  
  35.    <div class="main-area">  
  36.     <div class="main-area-content clearfix">  
  37.      <div class="logobar">logobar</div> 
  38.      <div class="left-menu fl">  
  39.       <div class="list">  
  40.       <ul class="menu">  
  41.        </ul>  
  42.       </div>  
  43.      </div>  
  44.      <div class="content-box fl">  
  45.       <div id="main" style="height:99%;">  
  46.        <iframe frameborder="no" name="mainFrame" id="mainFrame" scrolling="auto" src="index.html" width="99%" height="99%"> 您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。 </iframe>  
  47.       </div>  
  48.      </div>  
  49.      <div class="statusbar">底部</div> 
  50.     </div>  
  51.    </div>  
  52.   </div>   
  53.  </body> 
  54. </html> 

左侧的菜单代码如下:

上面部分是菜单的折叠和呈现,下面是菜单的一些数据

  1. <script type="text/javascript" src="jquery-3.6.0.js"></script>  
  2. <script type="text/javascript"
  3.   $(document).ready(function() { 
  4.       $('.inactive').click(function(){ 
  5.           var className=$(this).parents('li').parents().attr('class'); 
  6.           if($(this).siblings('ul').css('display')=='none'){ 
  7.               if(className=="menu"){ 
  8.                   $(this).parents('li').siblings('li').children('ul').parent('li').children('a').removeClass('inactives'); 
  9.                   $(this).parents('li').siblings('li').children('ul').slideUp(100); 
  10.               } 
  11.               $(this).addClass('inactives'); 
  12.               $(this).siblings('ul').slideDown(100).children('li'); 
  13.           }else { 
  14.               $(this).removeClass('inactives'); 
  15.               $(this).siblings('ul').slideUp(100); 
  16.           } 
  17.       }) 
  18.   }); 
  19.   </script>  
  20. /head>  
  21.  
  22.     <ul class="menu">  
  23.       <li><a href="#" class="inactive active">PDF工具</a>  
  24.        <ul>  
  25.         <li><a href="daohang5.html" target="mainFrame" title="PDF转图片">PDF转图片</a></li>  
  26.         <li><a href="PDF提取文字.html" target="mainFrame" title="PDF提取文字">PDF提取文字</a></li>  
  27.         <li><a href=".html" target="mainFrame" title="">PDF提取表格</a></li>  
  28.        </ul>  
  29.       </li>  
  30.       <li><a href="#" class="inactive">血缘关系</a>  
  31.        <ul>  
  32.         <li><a href="图谱2.html" target="mainFrame" title="">全景展示</a></li>  
  33.         <li><a href=".html" target="mainFrame" title="">节点查询</a></li>  
  34.        </ul>  
  35.       </li> 
  36.       <li><a href="#" class="inactive">自然语言处理组件</a>  
  37.        <ul>  
  38.         <li><a href=".html" target="mainFrame" title="">分词</a></li>  
  39.         <li><a href=".html" target="mainFrame" title="">词性</a></li>  
  40.         <li><a href=".html" target="mainFrame" title="">词云</a></li>  
  41.         <li><a href=".html" target="mainFrame" title="">文本相似度比较</a></li>  
  42.         <li><a href=".html" target="mainFrame" title="">关键词提取</a></li>  
  43.         <li><a href=".html" target="mainFrame" title="">文本摘要提取</a></li>  
  44.        </ul>  
  45.       </li> 
  46.       <li><a href="#" class="inactive">图像识别组件</a>  
  47.        <ul>  
  48.         <li><a href=".html" target="mainFrame" title="">照片背景替换</a></li>  
  49.         <li><a href=".html" target="mainFrame" title="">识别目标</a></li>  
  50.         <li><a href=".html" target="mainFrame" title="">猫狗识别</a></li>  
  51.        </ul>  
  52.       </li>  
  53.      </ul>  

实现完成后,大体上运行结果如下,至于上面的logobar和statusbar有待慢慢完善。

为什么选知识图谱呢,这是长期以来一直惦记的事情,元数据管理、主数据管理、数据治理、数据应用都离不开知识图谱,前期用过neo4j,比较适合做关系存储,一个是闭源,一个是和web集成展现上比较弱;用过networkxx,python用于知识图谱开发的模块,但展现效果上比较弱;想用sigma.js,但文档太少,d3.js门槛太高;pyecharts之前也用过,交互性比较弱,echarts应用比较广一些,文档和案例也比较容易。知识图谱的一个问题是大量数据的呈现效果不是很理想,再则一般人很少这么用,通常是找到一个基准,去遍历其上下游直接或间接节点形成子树;还有个问题关于数据血缘关系的解析,目前python提供的比较成熟的包比较有限,pyparsing勉强可以一用。也需要一点点的把知识串起来。

 

个人体会,权当一乐,希望有一天能用上自己的成果。

 

责任编辑:武晓燕 来源: python与大数据分析
相关推荐

2021-09-07 10:12:25

分布式数据库集群

2012-09-17 10:46:06

设计LogoIcon

2011-07-13 09:13:56

Android设计

2013-04-07 10:40:55

前端框架前端

2009-06-18 09:51:25

Java继承

2023-04-27 15:19:52

2023-10-25 13:37:04

Git

2009-07-28 10:21:05

自定义Command

2015-01-13 09:20:08

DockerCoreOSRocket

2012-09-25 10:03:56

JavaJava封面Java开发

2016-10-18 22:10:02

HTTP推送HTML

2020-05-19 14:35:42

Shell脚本循环

2018-07-30 08:41:48

VueReact区别

2020-04-10 08:50:37

Shell脚本循环

2017-09-20 15:07:32

数据库SQL注入技巧分享

2009-08-13 16:41:12

C#结构

2009-06-18 10:53:52

Hibernate3.

2021-06-10 10:02:19

优化缓存性能

2011-03-11 09:27:11

Java性能监控

2017-12-21 07:54:07

点赞
收藏

51CTO技术栈公众号