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


Posted in Python onMay 22, 2017

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

Python 相关文章推荐
跟老齐学Python之集合的关系
Sep 24 Python
Django中URLconf和include()的协同工作方法
Jul 20 Python
python文件与目录操作实例详解
Feb 22 Python
python中的字典操作及字典函数
Jan 03 Python
python在非root权限下的安装方法
Jan 23 Python
Python异常处理操作实例详解
May 10 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 Python
Python使用struct处理二进制(pack和unpack用法)
Nov 12 Python
cookies应对python反爬虫知识点详解
Nov 25 Python
Python中的嵌套循环详情
Mar 23 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 Python
Python正则表达式经典入门教程
May 22 #Python
Python AES加密模块用法分析
May 22 #Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 #Python
对Python进行数据分析_关于Package的安装问题
May 22 #Python
详解python之配置日志的几种方式
May 22 #Python
多版本Python共存的配置方法
May 22 #Python
Python中元组,列表,字典的区别
May 21 #Python
You might like
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
php 批量替换程序的具体实现代码
2013/10/04 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
JS实现购物车特效
2017/02/02 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
vue中实现动态生成二维码的方法
2020/02/21 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
人机交互程序 python实现人机对话
2017/11/14 Python
利用python如何处理nc数据详解
2018/05/23 Python
python实现在一个画布上画多个子图
2020/01/19 Python
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
餐饮加盟计划书
2014/01/10 职场文书
校本教研工作制度
2014/01/22 职场文书
公关活动策划方案
2014/05/25 职场文书
公司周年庆活动方案
2014/08/25 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
班主任寄语2016
2015/12/04 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python