<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
    主站蜘蛛池模板: 亚洲午夜久久久久妓女影院| 国产免费小视频在线观看| 亚洲熟女少妇一区二区| 黄色毛片免费网站| 日本免费福利视频| 亚洲成a∧人片在线观看无码| 毛片a级毛片免费播放下载| 亚洲a视频在线观看| 久草免费在线观看视频| 亚洲免费观看网站| 成人爽A毛片免费看| 亚洲天然素人无码专区| 毛片免费在线观看网址| 亚洲欧美成人av在线观看 | 无码av免费网站| 亚洲国语精品自产拍在线观看| 久久九九全国免费| 亚洲一区精品中文字幕| 91视频国产免费| 亚洲国产成人无码AV在线影院| 国产免费观看黄AV片| av午夜福利一片免费看久久| 亚洲色欲色欲www在线丝| 国产精品99精品久久免费| 久久亚洲精品无码| 国产1024精品视频专区免费| 亚洲欧美自偷自拍另类视| www国产亚洲精品久久久 | 免费观看久久精彩视频| 亚洲综合在线成人一区| 成人免费毛片内射美女APP| 色一情一乱一伦一视频免费看| 自拍偷自拍亚洲精品第1页| 2021精品国产品免费观看| 国产精品高清视亚洲一区二区| 国产亚洲福利一区二区免费看| av网站免费线看| 亚洲大片免费观看| 免费人成年轻人电影| 久久午夜无码免费| 亚洲综合av一区二区三区|