51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1836|回复: 0
打印 上一主题 下一主题

[原创] django与jquery数据传递过程

[复制链接]
  • TA的每日心情
    无聊
    2024-9-27 10:07
  • 签到天数: 62 天

    连续签到: 1 天

    [LV.6]测试旅长

    跳转到指定楼层
    1#
    发表于 2019-1-24 16:19:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 海鸥一飞 于 2019-1-24 16:24 编辑

    初次请求数据:

    通常django通过url请求views函数后,渲染模板数据到网页中。当模板中使用了jquery时,渲染过程不变,地址栏仍然通过输入对应地址,加载模板到网页。

    不刷新页面的情况下,再次/多次请求数据:
    在url.py中定义新的url,关联views与模板中的jquery。

    1、模板中的jquery src:可使用本地的,也可使用CDN上的

    2、CSRF认证:

    1. $(document).ready(function(){
    2.         $.ajaxSetup({
    3.             data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
    4.         });
    5.     ......
    6. });
    复制代码

    3、url.py中定义
    1. url(r'^add/[p=26, null, left]第一个url用于在地址栏输入访问,第二和第三个用于jquery访问views.py中的ajax_list和ajax_dict:[/p][p=26, null, left]下面两个函数返回了json数据(同样可将数据库数据转换为json),页面通过jquery获取后呈现。[/p][code]def ajax_list(request):
    2.     a = list(range(100))
    3.     return HttpResponse(json.dumps(a), content_type='application/json')

    4. def ajax_dict(request):
    5.     name_dict = {'twz': 'Love python and Django', 'zqxt': 'I am teaching Django'}
    6.     return HttpResponse(json.dumps(name_dict), content_type='application/json')
    复制代码

    4、模板中的jquery

    1. $('#list').click(function(){
    2.             $.getJSON('/ajax_list/',function(ret){
    3.             //返回值 ret 在这里是一个列表
    4.                 for (var i = ret.length - 1; i >= 0; i--) {
    5.                 // 把 ret 的每一项显示在网页上
    6.                 $('#list_result').append(' ' + ret[i])
    7.                 };
    8.             })
    9.         })

    10.       // 字典 dict
    11. $('#dict').click(function(){
    12.             $.getJSON('/ajax_dict/',function(ret){
    13.             //返回值 ret 在这里是一个字典
    14.             $('#dict_result').append(ret.twz + '<br>');
    15.             // 也可以用 ret['twz']
    16.             })
    17.         })
    复制代码


    5、效果如下:

    输入访问地址后的页面:



    通过点击‘Ajax加载列表’和‘Ajax加载字典’,效果如下:






    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 08:16 , Processed in 0.067785 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表