整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          用這個庫 3 分鐘實現(xiàn)讓你滿意的表格功能:Bootstrap-Table

          文作者:HelloGitHub-kalifun

          這是 HelloGitHub 推出的《講解開源項目》系列,今天給大家推薦一個基于 Bootstrap 和 jQuery 的表格插件:Bootstrap-Table

          一、介紹

          從項目名稱就可以知道,這是一款 Bootstrap 的表格插件。表格的展示的形式所有的前端幾乎在工作中都有涉及過,Bootstrap Table 提供了快速的建表、查詢、分頁、排序等一系列功能。

          項目地址:https://github.com/wenzhixin/bootstrap-table

          可能 Bootstrap 和 jQuery 技術有些過時了,但如果因為歷史的技術選型或者舊的項目還在用這兩個庫的話,那這個項目一定會讓你的嘴角慢慢上揚,拿下表格展示方面的需求易如反掌!

          二、模式

          Boostatrp Table 分為兩種模式:客戶端(client)模式、服務端(server)模式。

          • 客戶端:通過數(shù)據(jù)接口將服務器需要加載的數(shù)據(jù)一次性展現(xiàn)出來,然后裝換成 json 然后生成 table。我們可以自己定義顯示行數(shù),分頁等,此時就不再會向服務器發(fā)送請求了。
          • 服務器:根據(jù)設定的每頁記錄數(shù)和當前顯示頁,發(fā)送數(shù)據(jù)到服務器進行查詢。

          三、實戰(zhàn)操作

          Tips: 解釋說明均在代碼中以注釋方式展示,請大家注意閱讀。

          我們采用的是最簡單的 CDN 引入方式,代碼可直接運行。復制代碼并將配置好 json 文件的路徑即可看到效果。

          3.1 快速上手

          注釋中的星號表示該參數(shù)必寫,話不多說上代碼。示例代碼:

          <!DOCTYPE html>
          <html lang="en">
          <head>
           <meta charset="UTF-8">
           <title>Hello, Bootstrap Table!</title>
           // 引入 css
           <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
           <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
           <link rel="stylesheet" href="https://unpkg.com/bootstrap-table@1.15.3/dist/bootstrap-table.min.css">
          </head>
          <body>
           // 需要填充的表格
           <table id="tb_departments" data-filter-control="true" data-show-columns="true"></table>
          // 引入js
          <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
          <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
          <script src="https://unpkg.com/bootstrap-table@1.15.3/dist/bootstrap-table.min.js"></script>
          <script>
           window.operateEvents = {
           // 當點擊 class=delete 時觸發(fā)
           'click .delete': function (e,value,row,index) {
           // 在 console 打印出整行數(shù)據(jù)
           console.log(row);
           }
           };
          
           $('#tb_departments').bootstrapTable({
           url: '/frontend/bootstrap-table/user.json', //請求后臺的 URL(*)
           method: 'get', //請求方式(*)
           // data: data, //當不使用上面的后臺請求時,使用data來接收數(shù)據(jù)
           toolbar: '#toolbar', //工具按鈕用哪個容器
           striped: true, //是否顯示行間隔色
           cache: false, //是否使用緩存,默認為 true,所以一般情況下需要設置一下這個屬性(*)
           pagination: true, //是否顯示分頁(*)
           sortable: false, //是否啟用排序
           sortOrder: "asc", //排序方式
           sidePagination: "client", //分頁方式:client 客戶端分頁,server 服務端分頁(*)
           pageNumber:1, //初始化加載第一頁,默認第一頁
           pageSize: 6, //每頁的記錄行數(shù)(*)
           pageList: [10, 25, 50, 100], //可供選擇的每頁的行數(shù)(*)
           search: true, //是否顯示表格搜索,此搜索是客戶端搜索,不會進服務端,所以個人感覺意義不大
           strictSearch: true, //啟用嚴格搜索。禁用比較檢查。
           showColumns: true, //是否顯示所有的列
           showRefresh: true, //是否顯示刷新按鈕
           minimumCountColumns: 2, //最少允許的列數(shù)
           clickToSelect: true, //是否啟用點擊選中行
           height: 500, //行高,如果沒有設置 height 屬性,表格自動根據(jù)記錄條數(shù)覺得表格高度
           uniqueId: "ID", //每一行的唯一標識,一般為主鍵列
           showToggle:true, //是否顯示詳細視圖和列表視圖的切換按鈕
           cardView: false, //是否顯示詳細視圖
           detailView: false, //是否顯示父子表
           showExport: true, //是否顯示導出
           exportDataType: "basic", //basic', 'all', 'selected'.
           columns: [{
           checkbox: true //復選框標題,就是我們看到可以通過復選框選擇整行。
           }, {
           field: 'id', title: 'ID' //我們取json中id的值,并將表頭title設置為ID
           }, {
           field: 'username', title: '用戶名' //我們取 json 中 username 的值,并將表頭 title 設置為用戶名
           },{
           field: 'sex', title: '性別' //我們取 json 中 sex 的值,并將表頭 title 設置為性別
           },{
           field: 'city', title: '城市' //我們取 json 中 city 的值,并將表頭 title 設置為城市
           },{
           field: 'sign', title: '簽名' //我們取 json 中 sign 的值,并將表頭 title 設置為簽名
           },{
           field: 'classify', title: '分類' //我們取 json 中 classify 的值,并將表頭 title 設置為分類
           },{
           //ormatter:function(value,row,index) 對后臺傳入數(shù)據(jù) 進行操作 對數(shù)據(jù)重新賦值 返回 return 到前臺
           // events 觸發(fā)事件
           field: 'Button',title:"操作",align: 'center',events:operateEvents,formatter:function(value,row,index){
           var del = '<button type="button" class="btn btn-danger delete">刪除</button>'
           return del;
           }
           }
           ],
           responseHandler: function (res) {
           return res.data //在加載遠程數(shù)據(jù)之前,處理響應數(shù)據(jù)格式.
           // 我們取的值在data字段中,所以需要先進行處理,這樣才能獲取我們想要的結果
           }
           });
          </script>
          </body>
          </html>

          上面的代碼展示通過基本 API 實現(xiàn)基礎的功能,示例代碼并沒有羅列所有的 API。該庫還有很多好玩的功能等著大家去發(fā)現(xiàn),正所謂師父領進門修行靠個人~

          3.2 拆解講解

          下面對關鍵點進行闡述,為了更方便使用的小伙伴清楚插件的用法。

          3.2.1 初始化部分

          選擇需要初始化表格。
          $('#tb_departments').bootstrapTable({})
          這個就像table的入口一樣。
          <table id="tb_departments" data-filter-control="true" data-show-columns="true"></table>

          3.2.2 閱讀數(shù)據(jù)部分

          columns:[{field: 'Key', title: '文件路徑',formatter: function(value,row,index){} }]
          • field json 中鍵值對中的 Key
          • title 是表格頭顯示的內容
          • formatter 是一個函數(shù)類型,當我們對數(shù)據(jù)內容需要修改時會用它。例:編碼轉換

          3.2.3 事件觸發(fā)器

          events:operateEvents
           window.operateEvents = {
           'click .download': function (e,value,row,index) {
           console.log(row);
           }
           }

          因為很多時候我們需要針對表格進行處理,所以事件觸發(fā)器是一個不錯的選擇。比如:它可以記錄我們的行數(shù)據(jù),可以利用觸發(fā)器進行定制函數(shù)的執(zhí)行等。

          四、擴展

          介紹幾個擴展可以讓我們便捷的實現(xiàn)更多的表格功能,而不需要自己造輪子讓我們的工作更加高效(也可以進入官網查看擴展的具體使用方法,官方已經收集了大量的擴展)。老規(guī)矩直接上代碼:

          4.1 表格導出

          <script src="js/bootstrap-table-export.js"></script> 
          showExport: true, //是否顯示導出
          exportDataType: basic,								 //導出數(shù)據(jù)類型,支持:'基本','全部','選中'
          exportTypes:['json', 'xml', 'csv', 'txt', 'sql', 'excel'] //導出類型

          4.2 自動刷新

          <script src="extensions/auto-refresh/bootstrap-table-auto-refresh.js"></script>
          autoRefresh: true, 							 //設置 true 為啟用自動刷新插件。這并不意味著啟用自動刷新
          autoRefreshStatus: true,						//設置 true 為啟用自動刷新。這是表加載時狀態(tài)自動刷新
          autoRefreshInterval: 60,						//每次發(fā)生自動刷新的時間(以秒為單位)
          autoRefreshSilent: true							//設置為靜默自動刷新

          4.3 復制行

          <script src="extensions/copy-rows/bootstrap-table-copy-rows.js"></script>
          showCopyRows: true,									//設置 true 為顯示復制按鈕。此按鈕將所選行的內容復制到剪貼板
          copyWithHidden: true,								//設置 true 為使用隱藏列進行復制
          copyDelimiter: ', ',								//復制時,此分隔符將插入列值之間
          copyNewline: '\n'									//復制時,此換行符將插入行值之間

          五、總結

          本篇文章只是簡單的闡述 Bootstrap-Table 如何使用,正在對表格功能實現(xiàn)而憂愁的小伙伴,可以使用 HelloGitHub 推薦的這款插件。你會發(fā)現(xiàn)網頁制作表格還可以如此快捷,期待小伙伴挖掘出更加有意思的功能哦。

          注:上面 js 部分并沒有采用函數(shù)形式,建議在使用熟悉之后還是采用函數(shù)形式,這樣也方便復用及讓代碼看起來更加規(guī)范。

          參考資料

          [1]《講解開源項目》: https://github.com/HelloGitHub-Team/Article

          [2]Bootstrap-Table 項目地址: https://github.com/wenzhixin/bootstrap-table

          [3]Bootstrap-Table 官方文檔: https://bootstrap-table.com/docs/getting-started/introduction/

          『講解開源項目系列』——讓對開源項目感興趣的人不再畏懼、讓開源項目的發(fā)起者不再孤單。跟著我們的文章,你會發(fā)現(xiàn)編程的樂趣、使用和發(fā)現(xiàn)參與開源項目如此簡單。歡迎留言聯(lián)系我們、加入我們,讓更多人愛上開源、貢獻開源~

          評分析平臺-介紹

          這個項目名為「差評分析助手」,是一個有助于理性購物的教學演示項目,是個綜合性的全棧項目,已經上線。


          具體介紹見之前的視頻:

          差評分析助手-01-介紹

          差評分析助手-02-技術

          差評分析助手-03-演示


          目標

          一個涉及到Python基礎,爬蟲,數(shù)據(jù)分析,前端,web框架,數(shù)據(jù)庫,緩存,任務隊列,服務部署,上線優(yōu)化的綜合性可擴展的項目。

          綜合運用各種編程知識,培養(yǎng)全棧開發(fā)能力。


          功能

          前端

          展示業(yè)務流程

          分頁

          跳轉

          數(shù)據(jù)可視化

          后端

          制作API,獲取狀態(tài)和結果

          根據(jù)分頁返回數(shù)據(jù)

          緩存優(yōu)先

          分頁獲取

          異步執(zhí)行任務

          windows: pip install eventlet

          > celery worker -A app.celery --loglevel=debug -P eventlet

          前后端分離

          跨域

          restful

          驗證

          docker服務部署

          上線優(yōu)化

          技術

          前端

          vue

          https://cn.vuejs.org/v2/guide/

          vuex

          https://vuex.vuejs.org/zh/guide/state.html

          elementUI

          https://element.eleme.cn/#/zh-CN

          https://github.com/ElementUI/vue-cli-plugin-element

          echarts

          https://gallery.echartsjs.com/explore.html#sort=rank~timeframe=all~author=all

          https://www.echartsjs.com/tutorial.html

          https://www.echartsjs.com/examples/

          v-charts

          https://v-charts.js.org/#/props

          后端API

          Python

          基礎知識

          面向對象

          網絡基礎

          http

          web框架

          flask

          http://flask.pocoo.org/

          https://flask-restful.readthedocs.io/en/latest/

          https://flask-httpauth.readthedocs.io/en/latest/

          爬蟲

          優(yōu)化

          制作API

          mongodb

          存儲爬取結果

          redis

          記錄任務,爬蟲狀態(tài)

          緩存分析結果

          celery

          任務隊列

          rabbitmq

          pandas

          提取有用數(shù)據(jù)

          https://www.jianshu.com/p/161364dd0acf

          https://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html#merge

          可視化

          維度:觀察數(shù)據(jù)的角度和對數(shù)據(jù)的描述

          目標:使用圖表展示數(shù)據(jù),讓用戶快速抓住要點信息

          要點:把握圖表特點,使用不同維度,展示合適的數(shù)據(jù)。

          圖表分類

          折線圖

          示意圖

          展示數(shù)據(jù)的趨勢,在橫軸的維度上展示縱軸數(shù)據(jù)的變化趨勢

          柱狀圖

          示意圖

          比較數(shù)據(jù)大小,多個維度的變化分析,用大小和顏色區(qū)分

          局限:分類過多則無法展示數(shù)據(jù)特點

          餅圖

          示意圖

          表示一組數(shù)據(jù)的占比

          工具

          echarts:

          https://www.echartsjs.com

          http://echarts.apache.org/

          pyecharts: https://pyecharts.org/#/zh-cn/intro

          v-charts: https://v-charts.js.org/#/


          后續(xù)會逐步推出前端到后端的開發(fā)過程,敬請關注。

          ava識堂,一個高原創(chuàng),高收藏,有干貨的微信公眾號,歡迎關注

          sort

          sort 命令對 File 參數(shù)指定的文件中的行排序,并將結果寫到標準輸出。如果 File 參數(shù)指定多個文件,那么 sort 命令將這些文件連接起來,并當作一個文件進行排序。

          sort語法

          [root@www ~]# sort [-fbMnrtuk] [file or stdin]
          
          選項與參數(shù):
          -f :忽略大小寫的差異,例如 A 與 a 視為編碼相同;
          -b :忽略最前面的空格符部分;
          -M :以月份的名字來排序,例如 JAN, DEC 等等的排序方法;
          -n :使用『純數(shù)字』進行排序(默認是以文字型態(tài)來排序的);
          -r :反向排序;
          -u :就是 uniq ,相同的數(shù)據(jù)中,僅出現(xiàn)一行代表;
          -t :分隔符,默認是用 [tab] 鍵來分隔;
          -k :以那個區(qū)間 (field) 來進行排序的意思
          
          對/etc/passwd 的賬號進行排序
          
          [root@www ~]# cat /etc/passwd | sort
          adm:x:3:4:adm:/var/adm:/sbin/nologin
          apache:x:48:48:Apache:/var/www:/sbin/nologin
          bin:x:1:1:bin:/bin:/sbin/nologin
          daemon:x:2:2:daemon:/sbin:/sbin/nologin
          

          sort 是默認以第一個數(shù)據(jù)來排序,而且默認是以字符串形式來排序,所以由字母 a 開始升序排序。

          /etc/passwd 內容是以 : 來分隔的,我想以第三欄來排序,該如何

          [root@www ~]# cat /etc/passwd | sort -t ':' -k 3
          
          root:x:0:0:root:/root:/bin/bash
          uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
          operator:x:11:0:operator:/root:/sbin/nologin
          bin:x:1:1:bin:/bin:/sbin/nologin
          games:x:12:100:games:/usr/games:/sbin/nologin
          

          默認是以字符串來排序的,如果想要使用數(shù)字排序:

          cat /etc/passwd | sort -t ':' -k 3n
          
          root:x:0:0:root:/root:/bin/bash
          daemon:x:1:1:daemon:/usr/sbin:/bin/sh
          bin:x:2:2:bin:/bin:/bin/sh
          

          默認是升序排序,如果要倒序排序,如下

          cat /etc/passwd | sort -t ':' -k 3nr
          
          nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
          ntp:x:106:113::/home/ntp:/bin/false
          messagebus:x:105:109::/var/run/dbus:/bin/false
          sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin
          

          如果要對/etc/passwd,先以第六個域的第2個字符到第4個字符進行正向排序,再基于第一個域進行反向排序。

          cat /etc/passwd | sort -t':' -k 6.2,6.4 -k 1r 
           
          sync:x:4:65534:sync:/bin:/bin/sync
          proxy:x:13:13:proxy:/bin:/bin/sh
          bin:x:2:2:bin:/bin:/bin/sh
          sys:x:3:3:sys:/dev:/bin/sh
          

          查看/etc/passwd有多少個shell:對/etc/passwd的第七個域進行排序,然后去重:

          cat /etc/passwd | sort -t':' -k 7 -u
          
          root:x:0:0:root:/root:/bin/bash
          syslog:x:101:102::/home/syslog:/bin/false
          daemon:x:1:1:daemon:/usr/sbin:/bin/sh
          sync:x:4:65534:sync:/bin:/bin/sync
          sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin
          

          uniq

          uniq命令可以去除排序過的文件中的重復行,因此uniq經常和sort合用。也就是說,為了使uniq起作用,所有的重復行必須是相鄰的。

          uniq語法

          [root@www ~]# uniq [-icu]
          
          選項與參數(shù):
          -i :忽略大小寫字符的不同;
          -c :進行計數(shù)
          -u :只顯示唯一的行
          

          testfile的內容如下

          cat testfile
          hello
          world
          friend
          hello
          world
          hello
          

          直接刪除未經排序的文件,將會發(fā)現(xiàn)沒有任何行被刪除

          #uniq testfile 
          hello
          world
          friend
          hello
          world
          hello
          

          排序文件,默認是去重

          #cat words | sort |uniq
          friend
          hello
          world
          

          排序之后刪除了重復行,同時在行首位置輸出該行重復的次數(shù)

          #sort testfile | uniq -c
          1 friend
          3 hello
          2 world
          

          僅顯示存在重復的行,并在行首顯示該行重復的次數(shù)

          #sort testfile | uniq -dc
          3 hello
          2 world
          

          僅顯示不重復的行

          sort testfile | uniq -u
          friend 
          

          cut

          cut命令可以從一個文本文件或者文本流中提取文本列。

          cut語法

          [root@www ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符
          
          [root@www ~]# cut -c 字符區(qū)間 <==用于排列整齊的信息
          
          選項與參數(shù):
          -d :后面接分隔字符。與 -f 一起使用;
          -f :依據(jù) -d 的分隔字符將一段信息分割成為數(shù)段,用 -f 取出第幾段的意思;
          -c :以字符 (characters) 的單位取出固定字符區(qū)間;
          

          PATH 變量如下

          [root@www ~]# echo $PATH
          /bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
          # 1 | 2 | 3 | 4 | 5 | 6 | 7
          

          將 PATH 變量取出,我要找出第五個路徑。

          #echo $PATH | cut -d ':' -f 5
          /usr/local/bin
          

          將 PATH 變量取出,我要找出第三和第五個路徑。

          #echo $PATH | cut -d ':' -f 3,5
          /sbin:/usr/local/bin
          

          將 PATH 變量取出,我要找出第三到最后一個路徑。

          echo $PATH | cut -d ':' -f 3-
          /sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
          

          將 PATH 變量取出,我要找出第一到第三個路徑。

          #echo $PATH | cut -d ':' -f 1-3
          /bin:/usr/bin:/sbin:
           
          

          將 PATH 變量取出,我要找出第一到第三,還有第五個路徑。

          echo $PATH | cut -d ':' -f 1-3,5
          /bin:/usr/bin:/sbin:/usr/local/bin
          

          實用例子:只顯示/etc/passwd的用戶和shell

          #cat /etc/passwd | cut -d ':' -f 1,7 
          root:/bin/bash
          daemon:/bin/sh
          bin:/bin/sh
          

          wc

          統(tǒng)計文件里面有多少單詞,多少行,多少字符。

          wc語法

          [root@www ~]# wc [-lwm]
          
          選項與參數(shù):
          -l :僅列出行;
          -w :僅列出多少字(英文單字);
          -m :多少字符;
          

          默認使用wc統(tǒng)計/etc/passwd

          #wc /etc/passwd
          40 45 1719 /etc/passwd
          

          40是行數(shù),45是單詞數(shù),1719是字節(jié)數(shù)

          wc的命令比較簡單使用,每個參數(shù)使用如下:

          #wc -l /etc/passwd #統(tǒng)計行數(shù),在對記錄數(shù)時,很常用
          40 /etc/passwd #表示系統(tǒng)有40個賬戶
          #wc -w /etc/passwd #統(tǒng)計單詞出現(xiàn)次數(shù)
          45 /etc/passwd
          #wc -m /etc/passwd #統(tǒng)計文件的字節(jié)數(shù)
          1719
          

          原文:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858385.html


          主站蜘蛛池模板: 亚洲AV无码一区二区三区网址| 天堂va视频一区二区| 久久精品无码一区二区WWW| 国产主播一区二区三区| 亚洲一区二区三区亚瑟| 国产精品无圣光一区二区| 精品一区二区三区AV天堂| 国产精品一区二区毛卡片| 亚洲av成人一区二区三区| 国产激情无码一区二区app| 亚洲视频在线一区二区| 日本视频一区二区三区| 无码精品久久一区二区三区| 精品国产一区二区三区在线| 国内精品视频一区二区三区八戒| 无码人妻精品一区二区三区不卡 | 一本一道波多野结衣AV一区| 亚洲一区免费观看| 日本伊人精品一区二区三区| 色婷婷一区二区三区四区成人网 | 99精品高清视频一区二区| 一区精品麻豆入口| 一区二区三区四区精品| 一本AV高清一区二区三区| 亚洲综合无码AV一区二区| 久久一区不卡中文字幕| 亚洲一区在线视频| 久久精品国内一区二区三区| 午夜爽爽性刺激一区二区视频| 国产av夜夜欢一区二区三区| 一区二区三区福利视频| 亚洲夜夜欢A∨一区二区三区| 性色av一区二区三区夜夜嗨| 国产福利一区二区三区| 精品无码国产一区二区三区麻豆| 日韩一区在线视频| 国产亚洲一区二区三区在线不卡| 色欲综合一区二区三区| 免费高清av一区二区三区| 不卡无码人妻一区三区音频| 精品人妻一区二区三区浪潮在线|