<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      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 閱讀(2147) 評論(0)  編輯  收藏 所屬分類: Python
    主站蜘蛛池模板: 在线观看亚洲天天一三视| 在线观看免费成人| 亚洲情侣偷拍精品| 色吊丝免费观看网站| 日韩特黄特色大片免费视频| 亚洲综合av一区二区三区 | 亚洲视频免费在线看| 日本一道本不卡免费| 亚洲第一第二第三第四第五第六 | 国产人在线成免费视频| 亚洲综合一区二区精品久久| 99免费观看视频| 亚洲国产成人九九综合| 日本在线高清免费爱做网站| 在线观看日本亚洲一区| 最近免费中文字幕视频高清在线看| 亚洲专区中文字幕| 日本高清免费不卡在线| 日韩精品无码永久免费网站| 久爱免费观看在线网站| 亚洲经典在线中文字幕| 国产va精品免费观看| 亚洲AV电影天堂男人的天堂| 亚洲av高清在线观看一区二区| 一级毛片成人免费看a| 亚洲成色999久久网站| 国产成人精品免费视频动漫 | 中文字幕在线免费看| 久久久综合亚洲色一区二区三区| 久久精品一本到99热免费| 亚洲天堂2016| 亚洲高清无码在线观看| 国产午夜免费高清久久影院| 亚洲男女一区二区三区| 国产午夜无码视频免费网站| 久久久久久久久久免免费精品| 久久久久亚洲精品无码系列| 成年人免费视频观看| 三年片免费高清版| 亚洲一区精品视频在线| 亚洲一本大道无码av天堂|