第五篇文章:在Django中用Jquery实现Ajax

在上面的几篇文章中,本人已经基本可以在Django模版中实现网页的加载,同时使用HTML中的表单,点击按钮可以跳转到下一个界面。


跳转到下一个界面一般需要加载更多的资源,如果需要在当前目前中动态更新信息,则需要Ajax技术,AJax技术即  Asynchronous JavaScript and Xml,其最大的特点就是异步特性,大家知道在计算机系统中,往往异步比同步更好,例如IO多路复用中。使用AJax可以在不重新加载整个页面的情况下,可以与服务器交换数据,并且更新部分网页内容。


在前面的文章中,本人都是使用HTML变到提取数据,表单部分代码如下:

 <table border = 0>
			<form action="/EngineDif/" name = "edform" method="get">
			
			<tr><td><font size="4">输入语法: yyyy-mm-dd dCity-aCity,yyyy-mm-dd dCity-aCity...</font> </td></tr>
		
			<tr>
				<td><input type="text" id = "id_query" name="query" size=60 value="2017-07-08 USM-BKK,2017-07-09 BKK-SHA" 
				οnfοcus="if(this.value == '2017-05-08 USM-BKK,2017-06-09 BKK-SHA') this.value='';" /></td>
				<td><input type="checkbox" name="AGG" checked="checked" onClick="return KeepCount()" value="AGG" />AGG</td>
				<td><input type="checkbox" name="AMA" checked="checked" onClick="return KeepCount()" value="AMA" />AMA</td>
				<td><input type="checkbox" name="CSE" onClick="return KeepCount()" value="CSE" />CSE</td>
				<td align="right"><button type="submit" class="btn btn-success">Run Dif</button></td>
			</tr>
			</form>
		</table>


通过name = "query" method = "GET" 后台Django程序可以通过GET方法得到query数据。相关Python代码如下:

def views_engine_dif(request):
    message = '';
    if 'query' in request.GET:
        message = request.GET['query']
    else:
        message = 'You submitted an empty form'
    print message;


现在如果使用Jquery里面的ajax方法的话,html代码中js代码如下:

<script>
 jQuery(function($){
        $('button').click(function(){
			query = $("#id_query").val()
			alert("Value: " + query);
			
			$.post("/EngineDif/",
			{
				"query":query,
			},
			function(data,status){
            alert("数据:" + data + "\n状态:" + status);
			$(detailed_infor).html(data);
         });
      });
    });
</script>




表单方法改为如下部分:

  <p><font size="4">输入语法: yyyy-mm-dd dCity-aCity,yyyy-mm-dd dCity-aCity...</font> </p>       
		<p>输入信息:<input type="text" id="id_query" value="2017-07-08 USM-BKK,2017-07-09 BKK-SHA"></p>
		<button>查询</button>


然后在Django的URL中添加/EngineDif/ 添加对应的处理函数即可,如下所示:

    url(r'^EngineDif/$',views.views_engine_dif, name = 'EngineDif'),

在views中,修改代码如下,注意使用的是POST方法:

def views_engine_dif(request):
    message = '';
    if 'query' in request.POST:
        message = request.POST['query']
    else:
        message = 'You submitted an empty form'
    print message;


这样就可以在网页中,实现动态加载网页了,快去试试吧!











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值