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学习笔记整理3之输入输出、python eval函数
Dec 14 Python
Python中函数及默认参数的定义与调用操作实例分析
Jul 25 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
Sep 30 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
python将视频转换为全字符视频
Apr 26 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
django框架F&amp;Q 聚合与分组操作示例
Dec 12 Python
python同时遍历两个list用法说明
May 02 Python
pandas参数设置的实用小技巧
Aug 23 Python
Python中pass的作用与使用教程
Nov 13 Python
PyQt实现计数器的方法示例
Jan 18 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 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中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
js window.event对象详尽解析
2009/02/17 Javascript
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
js注意img图片的onerror事件的分析
2011/01/01 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
Vue 父子组件、组件间通信
2017/03/08 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
python面向对象法实现图书管理系统
2019/04/19 Python
python3 反射的四种基本方法解析
2019/08/26 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
python中列表的含义及用法
2020/05/26 Python
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
关爱留守儿童倡议书
2014/04/15 职场文书
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技