【问题标题】:django + ajax: Need small introduction for "dummies "django + ajax:需要“傻瓜”的小介绍
【发布时间】:2010-03-05 18:40:45
【问题描述】:

我多次尝试了解 ajax 如何与 django 一起工作,但看起来网上没有任何教程可以帮助我。我宁愿尝试建立一个小样本。所以尝试解决以下问题。

1) 我有一个非常简单的视图函数,它在调用时返回随机数,例如

def homepage(request):
    id = randint(1, 6)
    return render_to_response("home.html", 
                              {"id" : id},
                              context_instance = RequestContext(request))

2) 我有一个非常原始的模板,所以它包含一个数字和按钮,可以在点击时触发 JS 代码,例如

{% extends "index.html" %}

{% block head %}

<script type="text/javascript">
  <!--
      function clickNewButton()
      {
      window.open("/");
      }
      -->
</script>

{% endblock %}

{% block content %}
  <div id="meta">
    <form name="smallForm">
      <p>
         {{ id }}
      </p>
        <input type="button" value="New" onClick="clickNewButton()"/>
    </form>
  </div>

</div>

{% endblock %}

所以基本上问题是......我如何只重新加载包含数字文本的页面部分

{{ id }}

就我而言。

如果我需要通过点击重新加载其他元素(例如图像),会有什么不同?


对不起,如果这个问题只是愚蠢的。不知道从哪里开始... :(


另外,我该如何更改页面的不可见部分?例如swfobject 实例的 flashvars 之一,以防我动态重新加载 flash 应用程序,以获取新参数?

【问题讨论】:

    标签: ajax django


    【解决方案1】:

    你可以创建一个只返回 id 的视图

    def id(request):
        return HttpResonse(randint(1, 6))
    

    并使用 AJAX 加载它。例如,使用 jQuery:

    $('#clickme').click(function(){ $('#randomnumber').load('/api/random.txt'); });
    

    但是,如果您需要更大的东西,请使用 Piston (http://bitbucket.org/jespern/django-piston/) 创建一个完整的 API 并使用它。最好先学习 jQuery ;)

    【讨论】:

    • 嘿!只是小提示。如何刷新 Flash 对象?点击按钮后。
    • 你使用 SWFObject 吗?另外,你真的需要闪光灯吗?它是一个大 CPU 消耗者
    【解决方案2】:

    我将重复我对这个问题的标准答案:使用 jQuery Taconite Plugin。它易于设置,可以跨浏览器无缝运行,并且可以让您对整个页面进行惊人的控制。这是一个即发即弃的解决方案,您所做的就是发送请求。所有的 AJAXiness 都是为您处理的,所有的更改都会自动应用。你可以用 jQuery 做的任何事情都可以用这个插件触发,直到并包括导致一段 Javascript 的 eval() (当然,它可以做任何你喜欢的事情)。 p>

    因为我现在已经给出了大约 6 或 7 次这个答案,所以我终于崩溃并创建了一个带有 my Taconite class and a simple usage example 的可下载文件。如果您对此有任何疑问和/或问题,请告诉我。

    【讨论】:

      【解决方案3】:

      这是使用 Dajax django 的扩展完全适合您的问题的示例:

      http://www.dajaxproject.com/random/

      Dajax 是一个强大的工具,可以轻松、超快速地开发 Web 应用程序中的异步表示逻辑,使用 Python 和 几乎没有 JavaScript 源代码。 使用 Dajax,您可以直接从 Python 修改 DOM 结构。

      它真的很容易使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-18
        • 2023-03-16
        • 2022-01-01
        • 2016-09-26
        • 1970-01-01
        • 1970-01-01
        • 2012-01-30
        相关资源
        最近更新 更多