一、同一目錄下的py文件無法互相調用
自檢查發現是文件路徑問題。如下圖的目錄架構下,在views.py文件中調用db.py文件中的類或函數。
首先如下圖設置根目錄,默認是當前已配置環境的Python項目根目錄。
如下圖,按照已設置的根目錄下的文件相對路徑進行引入即可。
二、flask的自動渲染路徑
簡單寫法如下,render_template的參數中,第一個參數爲前端模板,後繼參數均爲模板中待填充的部分。
這一部分等具體化再補充。
三、layui的表格參數傳遞
前端等待後臺數據的表格設置:
// 參考layui文檔
<table class="layui-hide" id="spideuser" lay-filter="test"></table>
前端JavaScript:
// 參考layui文檔
table.render({
elem: '#spideuser'
, height: 420
, url: '/spideuser/json/' //數據接口
, title: '備選用戶表'
, cols: [[ //表頭
{type: 'checkbox', fixed: 'left', width: 250}
, {field: 'name', title: '暱稱', align: 'center', width: 485}
, {field: 'type', title: '類別', align: 'center', width: 485}
]]
});
// 處理複選框選中數據
table.on('checkbox(test)', function(obj){
datas.push(obj.data); // 向列表中添加選中行數據
});
數據接口即爲表格需要的JSON數據所在的URL,可在後臺通過函數生成。
""" 同樣參考layui的demo表格的JSON數據格式 """
# 備選數據的json
@main.route('/spideuser/json/')
def data_to_json():
d = DBlink()
d.conndb()
cname = d.selectAllUser()
d.closedb()
datalist = []
for name in cname:
data = {'name': name[0], 'type': name[1]}
datalist.append(data)
jsdata = {"code": 0, "msg": "", "count": 1000, "data": datalist}
return jsonify(jsdata)
將前端數據傳到後端:
function spaction(){
var ajax = XMLHttpRequest();
ajax.open( "post" , '/spideuser' , true );
ajax.setRequestHeader( "Content-Type" , "application/json" );
ajax.onreadystatechange = function () {
if( ajax.readyState == 4 ) {
if( ajax.status == 200 ) {
msg.innerHTML = ajax.responseText;
}
else {
msg.innerHTML = "HTTP請求錯誤!錯誤碼:" + ajax.status;
}
}
};
// 必須要使用函數JSON.stringify將數據格式改爲JSON,否則後臺只能接收到Object字符串
ajax.send( JSON.stringify(datas) );
}
在後臺再對數據進行轉碼即可。
參考文章
[1] https://blog.csdn.net/weixin_33937499/article/details/85961463
[2] https://www.layui.com/doc/