繼續改進和優化《IT資產管理系統》,使用Redis緩存

繼續改進和優化《IT資產管理系統》,使用Redis緩存

一,系統採用Redis作爲緩存數據庫,提升系統的運行效率,減少後臺mysql數據庫的負擔。

def get_site_list(request):


    r = redis.StrictRedis(host='127.0.0.1', port=6379, decode_responses=True)
    # 判斷是否在redis server中存在 hash 'sitedict' 如果存在就讀取出來
    if r.hlen(name='sitedict'):
        hsitedict = r.hgetall(name='sitedict')
        ##從redis讀出hash  'sitedict',  通過for 循環,把結果轉換成[{id: 'idxx',sitename: 'sitenamexxx'},{   }.....]格式
        hsitelist = []
        for i in hsitedict:
            hsitelist.append({'id': i, 'sitename': hsitedict[i]})

    # 判斷是否在redis server中存在 hash 'hosttype' 如果存在就讀取出來
    if r.hlen(name='hosttype'):
        hhosttypedict =r.hgetall(name='hosttype')
        hhosttypelist=[]
        for i in hhosttypedict:
            hhosttypelist.append({'id':i,'htname':hhosttypedict[i]})

    #  如果redis server中不存在 hash 'sitedict' ,

    if request.user.adm_info.system_adm:
            sites=hsitelist
            #sites=site.objects.all().values('id','sitename').order_by('id')
    else:
            user_id=request.session.get('current_user_id')
            sites=adm_site.objects.filter(User_id=user_id).values('site_id').annotate(id=F('site__id'),sitename=F('site__sitename')).order_by('id')


    mylist=[sites,hhosttypelist]

    ret = list(mylist)
    result = json.dumps(ret)
    print(result)

    return HttpResponse(result, "application/json")

redis

二、繼續優化數據庫表,目前系統相關的表有23個,隨着優化和功能的增加,數據庫表還會增加

tables

三、優化數據查詢,所有查詢都使用AJAX異步從後臺拉取數據,減少前端的刷新,包括前端菜單也是用AJAX動態生成。

<script>

$(document).ready(function(){

$.ajax({
url:"/deviceman/get_site_list",
type:"get",
datatype:"json",
success:function(result){

for(var i = 0; i<result[0].length; i++){
var site = result[0][i];
$("#sitelist").append(" <li> <a href=# οnclick=swsite("+site.id+");>"+site.id+":"+site.sitename+"</a></li>")
};

for(var j = 0; j<result[1].length; j++){
var hosttype = result[1][j];
$("#hosttypelist").append("<li><a href=/deviceman/display_pc/"+hosttype.id+"/ >"+hosttype.htname+"</a></li>");
}

}

});
});

function swsite(id){
$.ajax({
url:"/deviceman/switchsite",
data:{id:id},
type:"get",
datatype:"json",
success:function(result){
alert('Switching the site code to '+result.sitename);
window.location.reload();
}

});




}



</script>

四、增加了硬件、軟件資產的基礎數據維護功能,讓每一個管理員都可以錄入依賴的數據,比如硬件資產的分類、型號、配置。軟件資產的分類,軟件的名稱, 。

soft

 

 

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