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 XML RPC服务器端和客户端实例
Nov 22 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
在Django中创建URLconf相关的通用视图的方法
Jul 20 Python
Python闭包的两个注意事项(推荐)
Mar 20 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 Python
解决python中import文件夹下面py文件报错问题
Jun 01 Python
django有哪些好处和优点
Sep 01 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
Sep 16 Python
python 中关于pycharm选择运行环境的问题
Oct 31 Python
Python+Appium自动化测试的实战
Jun 30 Python
python编程实现清理微信重复缓存文件
Nov 01 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
第三节 定义一个类 [3]
2006/10/09 PHP
PHP 数组教程 定义数组
2009/10/23 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
Smarty模板配置实例简析
2019/07/20 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
python实现代理服务功能实例
2013/11/15 Python
Python实现简单登录验证
2016/04/13 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
理解python中生成器用法
2017/12/20 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
extern是什么意思
2016/03/10 面试题
英文简历中的自荐信范文
2013/12/14 职场文书
社区平安建设方案
2014/05/25 职场文书
安全责任书怎么写
2014/07/28 职场文书
写给老师的保证书
2015/05/09 职场文书
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers