首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery POSTing to Django

jQuery POSTing to Django
EN

Stack Overflow用户
提问于 2012-12-31 22:30:06
回答 2查看 209关注 0票数 1

所以这可能是个愚蠢的问题,但我已经研究了大约4个小时。我是自学成才的Python (这意味着我可以通过,但不是很好),我试图把我的脚本扩展到Django。然而,我需要一些客户端脚本,所以我尝试使用jQuery做一些非常非常基本的Javascript内容,因为有很多这样的演示。

然而,一切都不起作用。我可以找到像这样的教程:http://webcloud.se/log/AJAX-in-Django-with-jQuery/,它看起来非常有用,但它们缺少信息(在本例中,Javascript端提供的所有内容都是没有触发器的函数的代码)。当我尝试将jQuery代码嵌入到Django模板中时,它不起作用,但我不知道这是因为我围绕给出的代码编写的东西是错误的,还是因为我得到的东西给了我问题,因为某些设置是错误的。

基本上,我希望看到一个非常简单的例子,将数据从Javascript发送到Django (例如,发送当前的时间戳),点击,Django,然后从双方发布,完全。(对于这类问题,我看过许多其他StackOverflow答案,它们似乎都是更大的例子,我担心我会被一些与基本数据传输问题无关的切线搞糊涂。)我希望看到包含每个人跳过的所有标记和内容的整个Django模板、URL文件和视图文件。也许我能弄清楚到底是怎么回事开始做点什么。

提前谢谢。

更新实际上,问题可能更普遍。当我接受这个密码时:

代码语言:javascript
复制
<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Test</title>
  </head>
  <body>
    <a href="http://jquery.com/">jQuery</a>
    <script type="text/javascript" src="/usr/lib/pymodules/python2.6/django/contrib/admin/media/js/jquery.js"></script>`
<script>
 $(document).ready(function(){
   $("a").click(function(event){
     alert("As you can see, the link no longer took you to jquery.com");
     event.preventDefault();
   });
 });
    </script>
  </body>
</html>

并将其保存为html文件,运行良好。当我接受相同的代码并使其成为Django模板时(除了将其放到正确的目录中并确保模板加载器被设置为加载之外,没有任何更改),它突然就不能工作了。我已经在Firefox和Chrome上测试过它。

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2012-12-31 22:47:04

AJAX可能会给调试带来真正的痛苦。

在此之前,我张贴了一篇文章,其中包含了你需要得到一个工作示例所需的部分。

https://stackoverflow.com/a/12905016/1406860

票数 0
EN

Stack Overflow用户

发布于 2012-12-31 23:15:26

这就是我喜欢使用ajax、jquery和django的方式。

views.py:

代码语言:javascript
复制
def ajax(request):
    if request.is_ajax():
    // do whatever

urls.py:

代码语言:javascript
复制
url(r'^ajax-url/$', 'views.ajax', name='ajax_url'),

jquery:

代码语言:javascript
复制
$(document).ready( function() {
$('div#ajax-div').click(function(){
  $.ajax({
  type: "POST",
  url:"/ajax-url/",
  success: function(data){alert('Success!');}
  error: function(){ alert("Error");}
});
}

template.html:

代码语言:javascript
复制
<div id='ajax-div'>
      <a href='{% url ajax-url %}'>Click here for ajax</a>
</div>

注意,{% url %}标记有时需要在url模式的名称周围加上引号,这取决于django的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14106532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档