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标准库os.path包、glob包使用实例
Nov 25 Python
python中利用xml.dom模块解析xml的方法教程
May 24 Python
Python3.6日志Logging模块简单用法示例
Jun 14 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
Python3.5面向对象程序设计之类的继承和多态详解
Apr 24 Python
基于Python的PIL库学习详解
May 10 Python
python中68个内置函数的总结与介绍
Feb 24 Python
numpy的Fancy Indexing和array比较详解
Jun 11 Python
python如何求圆的面积
Jul 01 Python
python+selenium实现12306模拟登录的步骤
Jan 21 Python
Python超简单容易上手的画图工具库推荐
May 10 Python
Python如何配置环境变量详解
May 18 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
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
跟我学习javascript的全局变量
2015/11/16 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
python正则表达式match和search用法实例
2015/03/26 Python
Python中分数的相关使用教程
2015/03/30 Python
Python制作爬虫采集小说
2015/10/25 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
python绘制封闭多边形教程
2020/02/18 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
远程研修随笔感言
2014/02/10 职场文书
《只有一个地球》教学反思
2014/02/14 职场文书
房产公证书范本
2014/04/10 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
2015年妇委会工作总结
2015/05/22 职场文书
2016特色励志班级口号
2015/12/24 职场文书
Python基本知识点总结
2022/04/07 Python