首页 > 编程 > Python > 正文

django js实现部分页面刷新的示例代码

2020-02-15 21:32:37
字体:
来源:转载
供稿:网友

例子中,我用的是显示机器上的进程信息的表格,获取不同的机器的进程信息时,更新这个展示信息的表格,如下:

当我在输入框中输入ip时,我希望只是更新这个表格,页面其他部分不变,实现方式如下:

1、在原页面中设置这个表格的id为pstable

<table class="table table-striped" id="pstable"> <thead> <tr>  <th>user</th>  <th>pid</th>  <th>cmd</th> </tr> </thead> <tbody> {% for ps in info.ps_data %} <tr>  {% for item in ps %}  <td>{{ item }}</td>  {% endfor %} </tr> {% endfor %} </tbody> </table>

2、实现js

<script type="text/javascript"> $(document).ready(function(){  $("#gobtn").click(function(){  var ip=$("#ip").val(); //获取输入框中的ip  $.post("/process/",{'hostip':ip}, //post函数到后端  function(data,status){ //回调函数  $("#pstable").html(data); //将id为pstable的标签的html替换为返回的data  $("#ip").val(ip) //将输入框的值改为查询的ip  }); }); }); 

3、view函数

def process_view(request):  hostip = request.POST.get('hostip')  logger.debug("host:%s" % hostip)  if hostip is None:  ps_data = GetHostPs('192.168.163.128')  info = {'username':request.user,'ps_data':ps_data}  template = 'process.html'  #return render(request,'process.html',{"info":info})  elif hostip:  ps_data = GetHostPs(hostip)  info = {'username':request.user,'ps_data':ps_data}  template = 'pstable.html'  #return render(request,'pstable.html',{"info":info})  else:  ps_data = GetHostPs('192.168.163.128')  info = {'username':request.user,'ps_data':ps_data}  template = 'pstable.html'  return render(request,template,{"info":info}) 

4、pstable.html 在这个html定义好要根据ip获取到进程信息后的html代码

<thead>  <tr>   <th>user</th>   <th>pid</th>   <th>cmd</th>  </tr>  </thead>  <tbody>  {% for ps in info.ps_data %}  <tr>   {% for item in ps %}   <td>{{ item }}</td>   {% endfor %}  </tr>  {% endfor %}  <tbody> 

当点击按钮查询指定ip的进程信息时,process()会判断这个ip的存在,如果这个ip存在,会将pstable.html保存到js函数中的data参数,然后js参数会调用回调函数,将id为pstable的tag的html替换为参数data保存的html,即pstable.html,从而局部修改页面,展示进程信息。

以上这篇django js实现部分页面刷新的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林站长站。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表