<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    Using Django templates with jQuery AJAX

    2009 January 6
    by Nizam

    I recently discovered a neat way of displaying data retrieved using jquery AJAX in concert with Django’s template engine. You can create a view in Django which simply uses the render_to_response shortcut function to render the results server-side and then just use jquery.load to dynamically fetch the results.

    Eventhough, returning some raw JSON data is much more efficient as far as bandwidth is concerned, method is a lot simpler.

    I have been using jquery for over a year now. I have found that its built-in DOM manipulation features are a bit limited, especially for manipulating tables (e.g., adding rows dynamically). This method is much cleaner than doing all that DOM manipulation.

    Here is all the jQuery code to handle the search and AJAX spinner display:

    01.$( document ).ready( function() {
    02.    $( '#searchSubmit' ).click( function() {
    03.        q = $( '#q' ).val();
    04.        $( '#results' ).html( '&nbsp;' ).load(
    05.                    '{% url demo_user_search %}?q=' + q );
    06.    });
    07.});
    08. 
    09.$( document ).ajaxStart( function() {
    10.    $( '#spinner' ).show();
    11.}).ajaxStop( function() {
    12.    $( '#spinner' ).hide();
    13.});

    Here is the Django view function that does the heavy lifting on the server-side:

    01.def ajax_user_search( request ):
    02.    if request.is_ajax():
    03.        q = request.GET.get( 'q' )
    04.        if q is not None:
    05.            results = User.objects.filter(
    06.                Q( first_name__contains = q ) |
    07.                Q( last_name__contains = q ) |
    08.                Q( username__contains = q ) ).order_by( 'username' )
    09. 
    10.            template = 'results.html'
    11.            data = {
    12.                'results': results,
    13.            }
    14.            return render_to_response( template, data,
    15.                context_instance = RequestContext( request ) )

    Here are some screenshots of the results:

    AJAX operation in progress

    AJAX operation in progress

    Returned results

    Returned results

    No results

    No results

    The sample Django project is included for your perusal and is released under the MIT license. I used the excellent Aptana Studio IDE when working on this demo so it can be imported straight into it as an Aptana project.

    Download ajax_user_list.zip

    posted on 2009-09-24 08:51 seal 閱讀(2148) 評論(0)  編輯  收藏 所屬分類: Python
    主站蜘蛛池模板: 亚洲中文无码卡通动漫野外 | 蜜桃AV无码免费看永久| 亚洲色偷偷色噜噜狠狠99| 久久国产乱子伦免费精品| 婷婷久久久亚洲欧洲日产国码AV | 亚洲人成色99999在线观看| 国产va精品免费观看| 亚洲娇小性xxxx色| 中文字幕在线免费播放| 国产成人高清亚洲| 91免费国产视频| 国产精品成人四虎免费视频| 亚洲精品宾馆在线精品酒店| 精品国产精品久久一区免费式| 亚洲成av人片天堂网| 国产精品成人亚洲| 国产免费私拍一区二区三区| 曰批免费视频播放免费| 午夜性色一区二区三区免费不卡视频 | 国产亚洲精品精华液| 亚洲AV无码一区二区一二区| 30岁的女人韩剧免费观看| 亚洲精品国产免费| 免费无码不卡视频在线观看| 男女猛烈激情xx00免费视频| 亚洲男人的天堂www| 一级免费黄色大片| 免费中文字幕不卡视频| a级毛片毛片免费观看久潮喷| 激情内射亚洲一区二区三区| 一二三四在线播放免费观看中文版视频| 亚洲一区二区三区国产精华液| 亚洲国产精品成人久久蜜臀| 成人黄网站片免费视频| 亚洲一久久久久久久久| 精品亚洲视频在线观看| 91老湿机福利免费体验| 色费女人18女人毛片免费视频| 亚洲VA中文字幕无码毛片| 你好老叔电影观看免费| 国产亚洲精品成人AA片|