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实现逆波兰计算表达式实例详解
May 06 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
Python中collections模块的基本使用教程
Dec 07 Python
对python中词典的values值的修改或新增KEY详解
Jan 20 Python
超实用的 30 段 Python 案例
Oct 10 Python
Python表达式的优先级详解
Feb 18 Python
Python3.8安装Pygame教程步骤详解
Aug 14 Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 Python
基于Python和openCV实现图像的全景拼接详细步骤
Oct 05 Python
Python中的嵌套循环详情
Mar 23 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
Apr 08 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
在JavaScript中调用php程序
2009/03/09 PHP
php中CI操作多个数据库的代码
2012/07/05 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
python基于socket实现网络广播的方法
2015/04/29 Python
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
使用Python写CUDA程序的方法
2017/03/27 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
django queryset相加和筛选教程
2020/05/18 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
美国著名手表网站:Timepiece
2017/11/15 全球购物
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
中秋节寄语2015
2015/03/24 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书
MySQL 5.7常见数据类型
2021/07/15 MySQL