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写asp详细讲解
Dec 16 Python
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
Python实现句子翻译功能
Nov 14 Python
python机器学习案例教程——K最近邻算法的实现
Dec 28 Python
基于python OpenCV实现动态人脸检测
May 25 Python
python读取和保存图片5种方法对比
Sep 12 Python
python 实现矩阵上下/左右翻转,转置的示例
Jan 23 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
Feb 15 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
Python中py文件转换成exe可执行文件的方法
Jun 14 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
如何用python爬取微博热搜数据并保存
Feb 20 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
php+js实现异步图片上传实例分享
2014/06/02 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
Python描述器descriptor详解
2015/02/03 Python
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
基python实现多线程网页爬虫
2015/09/06 Python
Python max内置函数详细介绍
2016/11/17 Python
python中退出多层循环的方法
2018/11/27 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
python给list排序的简单方法
2020/12/10 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
天逸系统(武汉)有限公司Java笔试题
2015/12/29 面试题
考博专家推荐信模板
2013/12/02 职场文书
教师自荐信范文
2013/12/09 职场文书
产品促销活动策划书
2014/01/15 职场文书
餐厅总厨求职信
2014/03/04 职场文书
施工安全员岗位职责
2015/04/11 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
养成教育主题班会
2015/08/13 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android
vue判断按钮是否可以点击
2022/04/09 Vue.js