本文實例講述了django+js+ajax實現刷新頁面的方法。分享給大家供大家參考,具體如下:
在服務器開發的時候,為了方便將服務器對外開一個接口來操作,可以使用django制作網頁,通過頁面來操作服務器。這樣可以將服務器的維護工作暴漏在更加友好的界面操作,而非通過SecureCRT去敲指令。而且還能提供給策劃運維人員來處理一些常規的事情。
這里將會講解一個非常小的知識點:
① js如何發起一次請求
② django如何響應請求
③ js接收到響應如何區域刷新頁面
js部分
我們先在html中定義一個button,并且將id設置成btnTerminalSvr。定義一個反饋的靜態標題ntfText
<h2 id="ntfText" >就緒</h2></br><button type="button" class="btn btn-success" id="btnTerminalSvr">關閉服務器</button>
編寫js來響應這個button的事件
<script type="text/javascript"> $('#btnTerminalSvr').on('click', function () { alert('嘿,我聽說您點擊了按鈕...' ); ... });</script>完善一次ajax請求的請求調用,以及回調之后的處理:
<script type="text/javascript"> $("#btnTerminalSvr").click(function(){ $.ajax({ url: './terminal_svr', type: 'POST', data: {}, dataType: 'json', timeout: 10000, success: function(result) { if ( result.result == "post_success" ) { $("#ntfText").html("發起成功"); }else { $("#ntfText").html("重復發起了"); } } }); });</script>在這里我們能在data里面填寫一些json格式的數據結構,這樣就能附帶一些消息提供給服務器做調用。當調用成功之后他將會回調function(result)。這種寫法是js的異步慣用寫法,當服務器做出相應之后也我們能通過jQuery框架直接去修改id=ntfText部分的html字符串了。
django部分
第一步:我們先定義django的url相應的映射
url(r'^terminal_svr', views.terminal_svr,name='terminal_svr'),
第二步:在views.py中實現這個處理函數
from django.views.decorators.csrf import csrf_exempt@csrf_exemptdef terminal_svr(request): # 這里利用了django自身的登陸驗證系統 if not request.user.is_authenticated(): return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/admin/')) doSomething to terminal svr a = {} a["result"] = "post_success" return HttpResponse(json.dumps(a), content_type='application/json')這塊就比較簡單了,我們可以讀取request中的json傳過來的信息,并且當操作成功后通過json串返回一個字串給前段來判斷是否操作成功。
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答