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字符串连接的N种方式总结
Sep 17 Python
使用Python中的cookielib模拟登录网站
Apr 09 Python
python中as用法实例分析
Apr 30 Python
Python快速排序算法实例分析
Nov 29 Python
对python当中不在本路径的py文件的引用详解
Dec 15 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
Python 面向对象之封装、继承、多态操作实例分析
Nov 21 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
解决pycharm上的jupyter notebook端口被占用问题
Dec 17 Python
使用pyecharts1.7进行简单的可视化大全
May 17 Python
Python return语句如何实现结果返回调用
Oct 15 Python
用Python进行websocket接口测试
Oct 16 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/11/03 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
php获取字段名示例分享
2014/03/03 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
详解nodejs微信公众号开发——3.封装消息响应模块
2017/04/10 NodeJs
js实现分页功能
2017/05/24 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
python中np是做什么的
2020/07/21 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
软件测试有哪些?什么是配置项?
2012/02/12 面试题
临床医师专业个人自我评价
2014/01/08 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
元旦晚会邀请函
2014/01/27 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
个人合作协议范本
2015/08/06 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
如何有效防止sql注入的方法
2021/05/25 SQL Server