如何使用 Django 和 Jquery 实现 ajax?

Posted

技术标签:

【中文标题】如何使用 Django 和 Jquery 实现 ajax?【英文标题】:How to implement ajax using Django and Jquery? 【发布时间】:2011-09-05 11:57:51 【问题描述】:

urls.py:

....
(r'^blog/post/$', post),
....

查看代码:

def post(request):

    if request.method == 'POST':



      post, created = Post.objects.get_or_create(
          title=request.POST.get("title"),
          text=request.POST.get("text"),

      )

    post_titles = [post.title for post in Post.objects.all()]
    return render_to_response("index.html", "post_titles":post_titles)

模板:

<script type="text/javascript" charset="utf-8">
            $(document).ready(function() 

                $("input#submit").click(function() 


                var title = $("#title").val();
                    var text = $("#text").val();    

                    var data = "title":title,"text":text;

                    $.post("/blog/post/", data, function(data)
                        alert("Data Loaded: " + data);
                    );
                );


            );
        </script>
        .........
        <div id="postbox">
      <form method="post" action="">
            <p>Enter Title</p><input type="text" name="title" id="title">
            <p>Enter Text</p><input type="text" name="text" id="text">
            <input type="submit" id="submit">
          </form>
        </div>

我希望在不刷新页面的情况下将帖子添加到数据库中,并且“标题”和“文本”也可以附加到 html 页面的某个位置。请告诉我我做错了什么。谢谢。

【问题讨论】:

有什么问题?发生什么了?视图是否被调用? POST 是否实际发布或是否存在 javascript 错误?在将所有内容放在这里之前,您需要自己进行一些调试。 有什么问题吗?有什么错误吗?更多信息会更好 【参考方案1】:

我很幸运使用Dajax/Dajaxice,它有详细的文档,有几个通过 jQuery 将 Django 与 ajax 集成的示例的工作演示(带有代码)。如果您提供调试输出,我会给出更长的答案(例如,是否出现警报框;其中的文本是什么)。我的猜测是'index.html'的'render_to_response'的视图函数不是你想要的ajax。通常,您只想使用您的 ajax 从服务器(到先前呈现的页面)发送某种结构化数据(通常是 json 或 xml)。

【讨论】:

以上是关于如何使用 Django 和 Jquery 实现 ajax?的主要内容,如果未能解决你的问题,请参考以下文章

django 管理后台 table使用jquery怎么实现的

django为啥不能实现ajax

Python-jQuery

如何使用 Modelform 和 jquery 在 django 中获取相互依赖的下拉菜单?

如何为使用 jQuery Mobile、PhoneGap 和 Django 实现的移动 Web 应用程序实现首次登录方案?

如何使用 jquery-ui 和 Django 创建模式登录表单