Django+Ajax異步刷新/定時自動刷新實例詳解

前言

分享一下最近在學習Django過程中,遇到和解決的一些有趣的方法和問題

一、Django是什麼?

Django也不用在過多的去介紹瞭。使用python進行web開發的基本上都在用著框架,反正大傢都在用,哈哈哈

二、Ajax異步刷新

1.jQuery語法下的Ajax運用

代碼如下(示例):

  $.ajax(
            {
                type:"GET",
                url:"/ajax_loadavg",
                dataType:"json",
                success:function (data) {
                    json_data = data
                    }

當然大傢別忘瞭在頁面引入jQuery的源

<script src="{%%20static%20'Privilege/vendor/jquery/jquery.min.js'%}"></script>

通過這種方式,可以實現異步數據更新,做到隻刷新部分頁面而不需要整個頁面進行刷新!!!

2.定時刷新頁面的樣例

這裡面使用chartist響應式圖標作為案例,設定每15s中對圖表進行一次刷新。

HTML5代碼示例如下:

<div id="headline-chart" class="ct-chart"></div>

jQuery代碼示例如下:

 setInterval(function () {
  $.ajax(
            {
                type:"GET",
                url:"/ajax_loadavg",
                dataType:"json",
                success:function (data) {
                    json_data = data
                   
			data = {
				labels: [0, 10, 20, 30, 40, 50, 60],
				series: [
                	[1, 2, 3, 4, 0, 0, 0],
					[0, 0, 0, 0, 0, 0, 0],
                	[0, 0, 0, 0, 0, 0, 0],
				]
			};

			options = {
				height: 300,
				showArea: true,
				showLine: false,
				showPoint: false,
				fullWidth: true,
				axisX: {
					showGrid: false,
               	 showLabel: false
				},
				lineSmooth: false,
				};

			new Chartist.Line('#headline-chart', data, options);
		 }
		 },15000)

Django 視圖(view)代碼如下:

註意:此處隻是展示Ajax與Django如何進行交互,Ajax獲取的JSON數據並未進行利用!

@csrf_exempt
def ajax_loadavg(request):
    if request.method == 'GET':
        context = {'output_loadavg':output_loadavg}
        return HttpResponse(json.dumps(context))

url配置

path('ajax_loadavg/', views.ajax_loadavg, name='ajax_loadavg'),

3.展示效果

可以替換series部分的數據,進行展示

總結

感興趣的小夥伴可以參看,也希望有想法的小夥伴,評論區多多發表意見!!!

Chartist圖表官網鏈接

http://gionkunz.github.io/chartist-js/

到此這篇關於Django+Ajax異步刷新/定時自動刷新的文章就介紹到這瞭,更多相關Django Ajax定時自動刷新內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: