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 相关文章推荐
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
Jul 01 Python
Python实现基本数据结构中队列的操作方法示例
Dec 04 Python
PyCharm代码整体缩进,反向缩进的方法
Jun 25 Python
python实现微信小程序自动回复
Sep 10 Python
Python函数中不定长参数的写法
Feb 13 Python
Python常用特殊方法实例总结
Mar 22 Python
检测python爬虫时是否代理ip伪装成功的方法
Jul 12 Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 Python
django框架F&amp;Q 聚合与分组操作示例
Dec 12 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 Python
详解Python中下划线的5种含义
Jul 15 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的十大要点(上)
2009/02/04 PHP
php实现rc4加密算法代码
2012/04/25 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
PHP实现的简单缓存类
2015/07/29 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
python实现清屏的方法
2015/04/30 Python
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
python开发简易版在线音乐播放器
2017/03/03 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
Python测试线程应用程序过程解析
2019/12/31 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
什么是servlet链?
2014/07/13 面试题
会计与审计专业大专生求职信
2013/10/03 职场文书
应聘自荐书
2013/10/08 职场文书
运动会开幕式解说词
2014/02/05 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
环保守法证明
2015/06/24 职场文书
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis