Python實現小型信息管理系統踩過的坑

一、同一目錄下的py文件無法互相調用

自檢查發現是文件路徑問題。如下圖的目錄架構下,在views.py文件中調用db.py文件中的類或函數。
圖1.1
首先如下圖設置根目錄,默認是當前已配置環境的Python項目根目錄。
圖1.2
如下圖,按照已設置的根目錄下的文件相對路徑進行引入即可。
圖1.3

二、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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章