使用Bootstrap-table創建表單,并且與flask后臺進行數據交互

文章目錄

  • 引用css和js
  • 使用
    • html
    • javascript
    • flask
    • mysql
  • 參考

引用css和js

Bootstrap-table為這些文件提供了 CDN 的支持,所以不需要下載.js .css文件就可以直接用了,十分方便

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://unpkg.com/bootstrap-table@1.19.1/dist/bootstrap-table.min.css">
<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
<!-- 可選的 Bootstrap 主題文件(一般不用引入) -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap-theme.min.css" integrity="sha384-6pzBo3FDv/PJ8r2KRkGHifhEocL+1X2rVCTTkUfGk7/0pbek5mMa1upzvWbrUbOZ" crossorigin="anonymous">
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://unpkg.com/bootstrap-table@1.19.1/dist/bootstrap-table.min.js"></script>
<!-- Latest compiled and minified Locales -->
<script src="https://unpkg.com/bootstrap-table@1.19.1/dist/locale/bootstrap-table-zh-CN.min.js"></script>

使用

html

在html上添加一行table。

<table id="table"></table>

javascript

在js里面添加:

// 獲取后臺數據
function MyupdateTable(evn, col_name) {var xmlhttp = new XMLHttpRequest();var json_rep;xmlhttp.onreadystatechange = function(){if (xmlhttp.readyState == 4 && xmlhttp.status == 200){// var json_rep = xmlhttp.responseText.parseJSON();  json_rep = JSON.parse(xmlhttp.responseText)}}xmlhttp.open("GET","http://9.135.90.225:8090/getAlarmMsg?evn=" + evn + "&&col_name=" + col_name, false);xmlhttp.send();return json_rep;
}function judge_except(val) {if (val == 0) return "是";else return "否";
}
// 將json數據轉成obj數組
function transData(json_rep, dataTable) {len = json_rep['len']for (var i = 0; i < len; i++) {dataTable.push({id: json_rep['id'][i],time: json_rep['date'][i],col_name: json_rep['colname'][i],actual: json_rep['actual'][i],scope: json_rep['scope'][i],if_except: judge_except(json_rep['if_except'][i])})}
}
var tke_room_nums_data = []
rep_tke_room_nums = MyupdateTable("tke","room_nums")
transData(rep_tke_room_nums, tke_room_nums_data)
// 對于表單結構、模式進行設置
$('#table').bootstrapTable({search: true,pagination: true,   //啟動分頁striped: true,    //設置為 true 會有隔行變色效果cache: false,                       //是否使用緩存,默認為true,所以一般情況下需要設置一下這個屬性(*)pageSize: 6,//初始頁記錄數sortable: true,    //排序pageList: [6,36,72,144], //記錄數可選列表smartDisplay: false,    //程序自動判斷顯示分頁信息columns: [{field: 'id',title: 'ID'}, {field: 'time',title: '時間'}, {field: 'col_name',title: '參數名'}, {field: 'actual',title: '實際值'},{field: 'scope',title: '預測范圍'},{field: 'if_except',title: '是否告警'},],data: tke_room_nums_data
})

flask

在flask里添加這樣的py程序

# author:hanhandi
# flask學習網址:https://www.w3cschool.cn/flask/flask_routing.html
# pymsql學習網址:
from flask import Flask, render_template, request, jsonify
import pymysql
import json
import logging
from dbutils.pooled_db import PooledDB
# 導入mylib
import sys
sys.path.append('/var/www/html/NewTest/InternShipProject/my_pylib')
from my_global_logic import adjust_table_name
from my_global_logic import Reverse
from my_sql import SELECTapp = Flask(__name__)# @app.route('/')
# def index():
#     return render_template("index.html")# 一些配置參數,需要從json文件中讀取
with open("/var/www/html/NewTest/InternShipProject/middle_back_end/backend/param_config/179_frame_param_config.json",'r+') as f:load_dict = json.load(f)mapping_path = load_dict["mapping_path"]    # 機房與機器ip映射關系文件db_password = load_dict["db_password"]# 初始化日志記錄文件
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
DATE_FORMAT = "%m/%d/%Y %H:%M:%S %p"
logging.basicConfig(filename = '/var/www/html/NewTest/logfiles/alarm_flask_backend.log', level = logging.WARNING, format = LOG_FORMAT, datefmt = DATE_FORMAT)# 解決跨域問題
@app.after_request
def cors(environ):environ.headers['Access-Control-Allow-Origin']='*'environ.headers['Access-Control-Allow-Method']='*'environ.headers['Access-Control-Allow-Headers']='x-requested-with,content-type'return environdef getMsg(evn, col_name):table_name = evn + "_" + col_name# 返回結果response_data = {'code': 0, 'msg': 'ok'}# 打開數據庫連接db = pymysql.connect(host='localhost',user='root',password=db_password,database='alarm_msg')# 使用 cursor() 方法創建一個游標對象 cursorcursor = db.cursor()try:select_sql = "SELECT id, order_date, col_name, actual, scope_left, scope_right, if_except FROM %s order by id desc" % table_nameresult = SELECT(db, cursor, select_sql)id = []date = []colname = []actual = []scope_left = []scope_right = []scope = []if_except = []for row in result:id.append(row[0])date.append(row[1])colname.append(row[2])actual.append(row[3])scope_left.append(row[4])scope_right.append(row[5])if_except.append(row[6])for i in range(len(scope_left)):scope.append("[" + str(scope_left[i]) + ", "+ str(scope_right[i]) + "]")# 關閉數據庫連接cursor.close()db.close()response_data['len'] = len(id)response_data['id'] = idresponse_data['date'] = dateresponse_data['colname'] = colnameresponse_data['actual'] = actualresponse_data['scope'] = scoperesponse_data['if_except'] = if_exceptreturn json.dumps(response_data, default=str)   except BaseException:logging.critical("Function: getMsg stop ...")cursor.close()db.close()return json.dumps(response_data) @app.route('/getAlarmMsg', methods=['GET'])
def getAlarmMsg():try:evn = request.args['evn']col_name = request.args['col_name']return getMsg(evn, col_name)except BaseException:response_data = {'code': 0, 'msg': 'error'}return json.dumps(response_data) if __name__ == '__main__':   try:                                                           app.run(host='0.0.0.0', port=8090, debug=True)except BaseException:logging.critical("app stop ...")

mysql

mysql里面的表單存儲結構為:

mysql> use alarm_msg;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables;
+---------------------+
| Tables_in_alarm_msg |
+---------------------+
| cvm_flow_down       |
| cvm_flow_up         |
| cvm_room_nums       |
| cvm_user_nums       |
| tke_flow_down       |
| tke_flow_up         |
| tke_room_nums       |
| tke_user_nums       |
+---------------------+
8 rows in set (0.00 sec)mysql> select * from cvm_flow_down;
+-----+---------------------+----------+-----------+------------+------------+-------------+-----------+
| id  | order_date          | today_id | col_name  | actual     | scope_left | scope_right | if_except |
+-----+---------------------+----------+-----------+------------+------------+-------------+-----------+
|   1 | 2022-03-14 18:20:43 |      110 | flow_down |  392615039 |    -628001 |   336556517 |         1 |
|   2 | 2022-03-14 18:30:42 |      111 | flow_down |  409642229 |     746497 |   383903533 |         1 |
|   3 | 2022-03-14 18:40:41 |      112 | flow_down |  526891185 |    4350006 |   419925905 |         1 |
|   4 | 2022-03-14 18:50:39 |      113 | flow_down |  557464437 |   10199705 |   451904363 |         1 |
|   5 | 2022-03-14 19:00:48 |      114 | flow_down |  648641400 |   22094813 |   481082273 |         1 |
|   6 | 2022-03-14 19:10:45 |      115 | flow_down |  884153264 |   36335606 |   502285379 |         1 |

最后結果:
在這里插入圖片描述

參考

https://v3.bootcss.com/getting-started/
https://bootstrap-table.com/docs/getting-started/download/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376632.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376632.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376632.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php編碼規則(一)

---恢復內容開始--- <轉載自己整理> GNU C 庫&#xff08;GNU C Library&#xff0c;又稱為glibc&#xff09;是一種按照LGPL許可協議發布的&#xff0c;公開源代碼的&#xff0c;免費的&#xff0c;方便從網絡下載的C的編譯程序。 GNU C運行期庫&#xff0c;是一種C函數…

重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下載數據, 上傳數據, 上傳文件...

重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下載數據, 上傳數據, 上傳文件 原文:重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下載數據, 上傳數據, 上傳文件[源碼下載] 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下載數據, 上傳數據, 上傳…

【經驗貼】smartCarers在比賽后如何獲取更好的發展

博主聯系方式: QQ:1540984562 QQ交流群:892023501 群里會有往屆的smarters和電賽選手,群里也會不時分享一些有用的資料,有問題可以在群里多問問。 由于最近專欄開了付費,群友讓更新一些經驗貼,于是有了這篇文章。 一般來說,比賽完了之后是大二結束的暑假,此時有這么幾條…

isset()和empty()到底區別是什么。

一招鮮吃遍天&#xff0c;自從看了燕十八關于PHP變量內部機制的那課&#xff0c;解釋了一些很久的疑惑&#xff0c;知其然還知其所以然&#xff0c;果然是學習的最佳途徑&#xff0c;比背下來要重要N倍。 我們知道一個變量有變量表的位置&#xff0c;然后他指向自己的內存地址&…

html清除圖片緩存

img.src ?t(new Date()); 如&#xff1a; <img id "5" src"../../../pics/prod_146/__INLINE__user_nums_cmp_146.png?t"(new Date()) width"1024">

分享下自己編譯 XBMC 的過程(zhuan)

刷YunOS贏魅族MX3首先要感謝下網上其他網友的經驗&#xff0c;沒有這些經驗有的問題還是不太好解決&#xff5e; 先介紹下編譯環境&#xff0c;操作系統是 CentOS 6.5 64位 (最小桌面版本安裝&#xff0c;除了最基本的組件外&#xff0c;類似 java 什么的都沒有安裝)&#xff0…

使用Xcode和Instruments調試解決iOS內存泄露

雖然iOS 5.0版本之后加入了ARC機制&#xff0c;但由于相互引用關系比較復雜時&#xff0c;內存泄露還是可能存在。所以了解原理很重要。 這里講述在沒有ARC的情況下&#xff0c;如何使用Instruments來查找程序中的內存泄露&#xff0c;以及NSZombieEnabled設置的使用。 本文假設…

0755、0644、0600 linux文件權限

0755->即用戶具有讀/寫/執行權限&#xff0c;組用戶和其它用戶具有讀寫權限&#xff1b; 0644->即用戶具有讀寫權限&#xff0c;組用戶和其它用戶具有只讀權限&#xff1b; 0600->僅擁有者具有文件的讀取和寫入權限

[Android] (在ScrollView里嵌套view)重疊view里面的onTouchEvent的調用方法

在我前面的自定義裁剪窗口的代碼中&#xff0c;我把裁剪的view放在了大的scrollview里&#xff0c;這樣就出現了程序只能觸發scrollview&#xff0c;無法操作我的裁剪窗口。所以我加了那篇博客下面最后兩段代碼。其實我遇到這個問題的時候是在一個scrollview里添加了一個Editte…

帶點擊事件的Spinner

最近有一個蛋疼的需求&#xff0c;在下拉框中&#xff0c;如果只有一個值&#xff0c;默認顯示出來&#xff0c;有兩個或者沒有顯示請選擇&#xff0c;沒有點擊不彈框&#xff0c;但是要清空&#xff0c;兩個點擊開要移掉請選擇字樣的項 本來以為很簡單&#xff0c;后來發現沒有…

linux進程間通信快速入門【二】:共享內存編程(mmap、XSI、POSIX)

文章目錄mmap內存共享映射XSI共享內存POSIX共享內存參考使用文件或管道進行進程間通信會有很多局限性&#xff0c;比如效率問題以及數據處理使用文件描述符而不如內存地址訪問方便&#xff0c;于是多個進程以共享內存的方式進行通信就成了很自然要實現的IPC方案。LInux給我們提…

ROBOTS.TXT屏蔽筆記、代碼、示例大全

自己網站的ROBOTS.TXT屏蔽的記錄&#xff0c;以及一些代碼和示例&#xff1a; 屏蔽后臺目錄&#xff0c;為了安全&#xff0c;做雙層管理后臺目錄/a/xxxx/&#xff0c;蜘蛛屏蔽/a/&#xff0c;既不透露后臺路徑&#xff0c;也屏蔽蜘蛛爬后臺目錄 緩存&#xff0c;阻止蜘蛛爬靜態…

五大主流瀏覽器 HTML5 和 CSS3 兼容性比較

轉眼又已過去了一年&#xff0c;在這一年里&#xff0c;Firefox 和 Chrome 在拼升級&#xff0c;版本號不斷飆升&#xff1b;IE10 隨著 Windows 8 在去年10月底正式發布&#xff0c;在 JavaScript 性能和對 HTML5 和 CSS3 的支持方面讓人眼前一亮。這篇文章給大家帶來《五大主流…

Ubuntu下將Sublime Text設置為默認編輯器

轉自將Sublime Text 2設置為默認編輯器 修改defaults.list 編輯/etc/gnome/default.list文件&#xff0c;將其中的所有gedit.desktop替換為sublime_text.desktop。 sublime_text.desktop在/opt/sublime_text目錄下&#xff0c;使用ls -al *sublime*命令查看具體文件名。 轉載于…

python獲取最近N天工作日列表、節假日列表

# 獲取最近兩周工作日列表、節假日列表 import datetime import chinese_calendar import time import pandas as pd# 將時間戳轉換成格式化日期 def timestamp_to_str(timestampNone, format%Y-%m-%d %H:%M:%S):if timestamp:time_tuple time.localtime(timestamp) # 把時間…

保存頁面的瀏覽記錄

我的設計思想是將用戶的瀏覽記錄保存到cookie里面&#xff0c;然后根據情況處理。cookie里面的數據格式是json格式&#xff0c;方便根據自己的需要添加或者修改屬性。引用了3個js文件,下載地址如下。 https://github.com/carhartl/jquery-cookie/blob/master/jquery.cookie.js …

開竅小老虎,一步一個腳印之 初識匯編(一)

最近一直浸淫在計算機編程中無法自拔。哲學 認識論中講過。人類的求知的過程是由兩次飛躍。第一是從感性認識到理性認識&#xff1b;第二是從理性認識到實踐。這段話對有些人是適用的。我就是其中的一名。在知乎上求助問題“學計算機要懂匯編嗎&#xff1f;”&#xff0c;地下有…

python腳本 請求數量達到上限,http請求重試

由于在內網發送http請求同一個token會限制次數&#xff0c;所以很容易達到網關流量上限。 業務中使用了多線程并發&#xff0c;一個線程發起一次http請求&#xff0c;得到正確結果后返回。這里采用的策略是&#xff0c;如果解析出來達到流量上限&#xff0c;那么該線程休眠一段…

shell 字符串操作

string"abcABC123ABCabc" 字符串長度: echo ${#string} #15 echo expr length $string #15 索引 用法&#xff1a;expr index $string $substring expr index $string "ABC" #4 提取子串 用法&#xff1a;${string:position} echo ${string:3} #A…

Linux 之目錄 -鳥哥的Linux私房菜

因為利用 Linux 來開發產品或 distributions 的社群/公司與個人實在太多了, 如果每個人都用自己的想 法來配置檔案放置的目錄,那么將可能造成很多管理上的困擾。 你能想象,你進入一個企業之后,所 接觸到的 Linux 目錄配置方法竟然跟你以前學的完全不同嗎? 很難想象吧~所以,后來…