<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 閱讀(2138) 評論(0)  編輯  收藏 所屬分類: Python
    主站蜘蛛池模板: 亚洲精品美女久久7777777| 亚洲一本之道高清乱码| 亚洲综合小说久久另类区| 亚洲a级成人片在线观看| 亚洲A∨精品一区二区三区下载| 日韩大片在线永久免费观看网站| 中文在线日本免费永久18近| 麻豆高清免费国产一区| 大学生高清一级毛片免费| 国产av无码专区亚洲国产精品| 亚洲AV本道一区二区三区四区| 亚洲一区电影在线观看| 国产精品亚洲五月天高清| a级毛片免费全部播放| 久久午夜免费视频| 亚洲另类激情专区小说图片| 亚洲国产老鸭窝一区二区三区| 久久综合久久综合亚洲| h片在线观看免费| 亚州免费一级毛片| 国产成人高清精品免费软件 | 亚洲免费在线视频观看| 日本免费网站在线观看| 亚洲开心婷婷中文字幕| 亚洲一区二区三区免费视频| 成年免费a级毛片| 一色屋成人免费精品网站| 亚洲无码高清在线观看| 亚洲国产成人精品无码一区二区| 色吊丝性永久免费看码 | 国产精品免费小视频| 亚洲AV成人片色在线观看高潮| 亚洲色在线无码国产精品不卡| 怡红院免费的全部视频| 永久免费看bbb| 99久久亚洲综合精品成人网| 羞羞视频免费网站日本| 在线观看免费高清视频| 久久久久久久尹人综合网亚洲| 亚洲欧美熟妇综合久久久久| 一区二区三区观看免费中文视频在线播放|