django+js+ajax实现刷新页面的方法

作者:erlang_hell 时间:2021-04-19 05:22:20 

本文实例讲述了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_exempt
def 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程序设计有所帮助。

标签:django,ajax,刷新页面
0
投稿

猜你喜欢

  • Date对象格式化方法

    2009-11-16 13:17:00
  • Nodejs进阶:express+session实现简易登录身份认证

    2024-05-11 09:51:28
  • Python面向对象类编写细节分析【类,方法,继承,超类,接口等】

    2023-01-01 11:23:13
  • 详解Numpy中的广播原则/机制

    2023-11-15 02:49:44
  • python优化数据预处理方法Pandas pipe详解

    2021-12-27 06:34:51
  • Go语言并发编程之互斥锁Mutex和读写锁RWMutex

    2024-04-25 15:00:32
  • js实现滑动进度条效果

    2023-08-24 03:47:39
  • MySQL和MongoDB设计实例对比

    2011-06-19 15:41:01
  • Python完成毫秒级抢淘宝大单功能

    2023-09-29 04:14:54
  • mysql遇到load data导入文件数据出现1290错误的解决方案

    2024-01-29 09:53:12
  • Python filter()及reduce()函数使用方法解析

    2022-09-05 07:01:59
  • 老生常谈python之鸭子类和多态

    2023-09-26 09:00:26
  • PHP中round()函数对浮点数进行四舍五入的方法

    2023-11-23 21:35:24
  • 关于keras中卷积层Conv2D的学习记录

    2022-07-16 17:33:16
  • Go语言之嵌入类型详解

    2024-02-05 08:39:16
  • python读取与写入csv格式文件的示例代码

    2023-08-09 09:07:15
  • 如何让Python在HTML中运行

    2023-06-13 08:21:28
  • 导航设计的流行趋势

    2007-12-25 12:06:00
  • PHP函数extension_loaded()用法实例

    2023-08-14 19:11:10
  • python缺失值的解决方法总结

    2023-07-28 23:47:38
  • asp之家 网络编程 m.aspxhome.com