什么是Django最好的AJAX库?[关闭]


108

哪种AJAX库最适合Django,为什么?
寻找一个包含大量教程,书籍和详细文档的数据库。
哪一个最容易使用?哪一个处于早期开发阶段,但对未来显示出巨大的希望?

问候,
克里斯


将问题标题更改为更相关的内容。
mmcdole,2009年

4
最好是澄清这是有关javascript库(prototypejs,jquery,dojo ...)还是Django / Python库(dajax ...)的问题
Steve Bennett

似乎这里的答案现在已被弃用,因为Django REST FrameworkDeliciouspie之类的框架似乎更加活跃,并且现在已为大多数开发人员所偏爱,而其他开发人员似乎对目前较少维护的框架存在问题(例如Dajax))。
Paul-Sebastian Manole 2014年

Answers:


70

我强烈推荐jQuery。有一些有关如何实现它的教程。

http://lethain.com/entry/2007/dec/11/two-faced-django-part-5-jquery-ajax/

http://lethain.com/entry/2007/dec/01/using-jquery-django-autocomplete-fields/

http://vincentxu.net/minimal-ajax-in-django-with-jquery-post

注意: Microsoft不久前还宣布jQuery将成为ASP.NET MVC的官方客户端框架,因此无论您使用哪种服务器端框架,都应该知道。


注意:前两个链接不再起作用。
加勒特·海德

3
链接似乎重新联机。
苏联2011年

3
顺便说一句,永远不要像"{'response_text': '"+post_text+" recieved.'}"第三个链接那样构造JSON响应。导入jsonsimplejson使用dumps
Flash

2
尽管jQuery非常棒,但可悲的是,Django的形式或视图没有进行显式集成(在admin之外)。
Cerin 2013年

2
最后一个链接不再起作用。
svenwildermann 2014年

62

我认为这可能是您要寻找的:django-dajax

有据可查。简单的API。很干净很漂亮。我计划在某些项目中更多地使用它。它与JS库无关,如果那是您的事,则可以与jQuery很好地兼容。

更新:

其他解决方案与dajaxice相似,但与标准dajax不同。

最后,它们的工作原理基本相同。

  • 定义/包括一些预定义的URL路由。
  • 注册将用作数据源的模型/视图/功能。
  • 请享用。

UDATE2:

这个建议太老了。应该可能研究其他解决方案。


2
我很惊讶这没有得到投票。看起来很棒。现在潜水。
本·基廷

现在已经1.5年了,自那时以来该项目似乎没有太多更新。这仍然是一个很好的建议吗?
蒂姆·赛勒

@TimSaylor我想说的是,如果这是您正在寻找的解决方案,则DajaxIce仍然是一个非常可靠的库:创建可在javascript中使用的任意ajax端点的简单方法。我个人不会使用常规的Dajax库,因为您最终在视图函数中编写了很多演示代码。就是说,有一些实体库可用于从模型(或其他任意数据)自动创建RESTful端点。(我将通过链接更新我的答案)。
德里克·雷诺兹

在Django中实现Ajax的超级库
Surya

1
对于Dajax GitHub的页面现在Should I use django-dajaxice?-In a word, No. I created this project 4 years ago as a cool tool in order to solve one specific problem I had at that time
用户

16

Django并没有使任何库更容易使用或与框架更好地兼容的事情。只需使用最适合您的大脑的那一个即可。

话虽如此,我的感觉是jQuery在Django世界中更流行,这是我个人使用的。最值得注意的是,Pinax中的许多应用程序需要jQuery。Django的其他一些共享应用程序和代码段:

http://www.djangosnippets.org/tags/jquery/
http://code.google.com/p/django-ajax-validation/
http://code.google.com/p/django-todo/
http: //code.google.com/p/donita/



7

结帐Dajax

Dajax项目

易于使用的Django AJAX库

快速,轻松和轻量级的库,可在django项目中实现AJAX。5分钟内即可使用。

Dajax是一个功能强大的工具,可使用python和几乎没有JS源代码的代码在Web应用程序中轻松快速地开发异步表示逻辑。

它最多支持四个最受欢迎的JS框架:原型,jQuery,Dojo和Mootols。


在我发布此答案后,我注意到有人已经提到了Dajax,但该答案并未描述图书馆提供的内容(无法对此发表评论)
denysonique 2011年

1
而且,如果您查看Github自述文件,您会发现“我应该使用django-dajax还是django-dajaxice?总之,不是。我4年前创建这些项目是一个很酷的工具,目的是解决当时我遇到的一个特定问题这些天来使用这些项目是一个坏主意。”
jwd630'4

4

我已经在不同的django项目上成功使用了jquery,YUI和Dojo。没有什么可以使django更好地结合使用的了。我同意jpartogy的观点,即由于“ pythonic”(类似扭曲)API,mochikit可能比其他任何方式都适合django。这实际上取决于您在ajax框架中要寻找的内容。

就我个人而言,我喜欢jQuery在给定数量的代码下可以执行的操作,但是编写jQuery代码的最大挑战是使其具有可读性。

YUI比其他框架冗长得多,因为它为使用名称空间设置了约定,但是存在编写更少代码的捷径,并且避免了使javascript看起来像其他东西的事情。

Dojo试图使javascript看起来像Java,但从我的经验来看,它相当慢。它具有一些不错的小部件和django模板语言的javascript实现(即使在django项目之外,该功能也非常有用)。

我个人避免使用原型和mootools,因为它们会破坏其他javascript代码(反之亦然)。

如果您不熟悉javascript和ajax,我建议您使用jQuery,因为它是最容易上手的。但是我不希望将任何js框架与django集成在一起,主要是因为确实不需要这样做。


2

+1给Soviut和Daniel带来了很好的答案。jQuery是一个不错的框架。除了Pinax之外,还有其他两个“大型” Django应用程序使用它:SatchmoReview Board(从另一个框架... mootools IIRC切换)。

同样流行的是无需使用任何框架即可滚动自己的Javascript,例如Django admin。

我可能提出的唯一其他建议是,如果您是一位经验丰富的Pythonhead,那么您可能喜欢mochikit,因为它太“ pythonic”而受到批评。它似乎是Turbogears的首选框架,但我个人还没有看到任何使用它的Django项目。


4
除了关于滚动自己的JS的短语外,其他答案都很好。我不会这么受欢迎,我在Django管理员以外的其他Django应用程序中都没有看到它,因此我建议不要这样做。为什么在不必时将头撞在砖墙上?如果已删除,则在此处+1。
卡尔·梅耶

好吧,我并不是说这是一个好主意:)我的javascript很弱,无法选择,因此我使用了jquery。我之所以提到它,是因为我对djangosites.com列表顶部的4-5个站点进行了调查,发现它们全部都使用自定义js。
范加尔

实际上,即使是Django管理员也正在切换到JQuery:code.djangoproject.com/changeset/12297
Chris Lawlor 2010年

1

好的,这可能是主观的,因为“最佳”的定义可能对每个人都不同。但是,由于您正在使用Django,因此这意味着您将掌握Python语法。Mochikit是一个不会暴露太多的著名 Javascript库。它的好处是它具有Python程序员熟悉的语法(因为创建者是Python程序员)。它也有很好的书面文档。开箱即用的TurboGears支持Mochikit。


1

如果您需要在django项目中使用AJAX进行设置,并且设置简单且易于使用,那么我的报价是:

django-ajaxGithubPypi

快速,灵活且易于使用的Django项目AJAX库。包含ajax装饰器,ajax中间件,快捷方式等。


0

“最佳AJAX库”一词非常主观,取决于个人喜好,现有知识,工作要求等。

尽管我喜欢使用jQuery来(几乎)处理所有事情,但我知道有人通过Dojo或ExtJS发誓。在某些情况下,您可能想使用jQuery,但可能会要求您使用ExtJS。

都说了。使用jQuery。jQuery岩石;)


0

Django并没有真正与客户端配合。使用您喜欢的任何东西。Django可以很好地处理该区域中的所有内容,因为您只需在模板中编写即可。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.