2009-02-04 5 views
107

Какая библиотека AJAX является лучшей для django и почему?
Ищете один с большой базой данных учебников, книг и подробной документации.
С какой из них легче всего работать? Какой из них находится в раннем развитии, но показывает большие перспективы на будущее?

Какая лучшая библиотека AJAX для Django?

С уважением,
Chriss

+0

Изменен заголовок вашего вопроса на что-то более актуальное. – mmcdole

+4

Было бы хорошо прояснить, является ли это вопрос о библиотеках javascript (prototypejs, jquery, dojo ...) или библиотеках Django/Python (dajax ...) –

+0

Кажется, что ответы вокруг здесь в настоящее время сильно устарели как рамки, такие как поскольку [Django REST Framework] (http://www.django-rest-framework.org/) и [Tastypie] (http://tastypieapi.org/) кажутся более активными и теперь предпочитают большинство разработчиков, в то время как другие чтобы иметь проблемы с структурами, которые в настоящее время менее поддерживаются (например, [Dajax] (http://dajaxproject.com/)). –

ответ

69

Я настоятельно рекомендую 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, поэтому его хорошо знать независимо от того, какой серверный интерфейс вы используете.

+0

Примечание: первые две ссылки больше не работают. –

+3

Ссылки, кажется, снова в сети. – Soviut

+3

Наверняка, никогда не создавайте ответ JSON, например '' {'response_text': '"+ post_text +" received.'} "' Как в третьей ссылке. Импортируйте 'json' или' simplejson' и используйте 'dumps'! – Flash

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/donita/

2

+1 к Soviut и Даниэля за хорошие ответы. JQuery - хорошая структура. Помимо Pinax еще несколько «больших» приложений Django используют его: Satchmo и Review Board (который переключился с другой структуры ... mootools IIRC).

Также популярен сканирование вашего собственного Javascript без использования каких-либо фреймворков, например администратора Django.

Единственное другое предложение, которое я могу сделать, это то, что если вы очень опытный Pythonhead, то вам может понравиться mochikit, который подпадает под критику за то, что он слишком «питонический». Кажется, это рамка выбора для Turbogears, но я лично не видел никаких проектов Django, использующих ее.

+4

Хороший ответ, за исключением фразы о переводе собственного JS. Я бы не назвал это популярным, я не видел его в приложениях Django, кроме администратора Django, и я рекомендую против него. Зачем удариться головой о кирпичную стену, когда вам это не нужно? +1 здесь, если это удалено. –

+0

Ну, я не говорю, что это хорошая идея :) Мой javascript достаточно слаб, чтобы у меня не было выбора, поэтому я использую jquery. Я упомянул об этом, потому что я просмотрел 4-5 сайтов в верхней части списка на djangosites.com и нашел их все, используя пользовательские js. –

+0

На самом деле даже администратор Django переключается на JQuery: http: //code.djangoproject.com/changeset/12297 –

0

Фраза «Лучший AJAX Library» является весьма субъективным и зависит от личных предпочтений, существующих ноу-хау, требования к работе и т.д. и т.п.

В то время как я предпочитаю JQuery (почти) все, я знаю некоторых людей, whio поклялся Dojo или ExtJS. Может быть случай, когда вы хотите использовать jQuery, но требования могут диктовать использование ExtJS.

Все сказано. Используйте jQuery.jQuery rocks;)

0

Django на самом деле не связан с клиентской стороной. Используйте то, с чем вам удобно. Django хорошо играет со всем в этой области, потому что вы просто пишете его в шаблонах.

1

Это может быть субъективно, потому что определение «лучший» может означать различие между каждым человеком. Но поскольку вы работаете с Django, это означает, что вы получите сильные стороны Python. Одна заметная библиотека Javascript, которая не подвергается слишком большому воздействию, - Mochikit. Хорошо, что у него есть синтаксис, знакомый программисту Python (поскольку создатель - программист на Python). Он также хорошо написал документацию. TurboGears из коробки поддерживает Mochikit.

4

Я успешно использовал jquery, YUI и Dojo в разных проектах django. Ничего из того, что сделало его лучше использовать с джанго. Я согласен с jpartogy, что mochikit может поместиться django больше, чем любой другой только из-за «pythonic» (скрученный) API. Это действительно зависит от того, что вы ищете в рамках ajax.

Лично мне нравится то, что jQuery может делать с заданными количествами кода, но самая большая проблема при написании кода jQuery делает его доступным для чтения.

YUI гораздо более подробно, чем другие фреймворки, потому что он устанавливает соглашение об использовании пространств имен, но есть ссылки для написания меньшего кода, и это позволяет избежать того, чтобы javascript выглядел как нечто другое.

Dojo пытается сделать javascript похожим на Java, и из моего опыта довольно медленно. В нем есть некоторые интересные виджеты и javascript-реализация языка шаблонов django (что очень полезно даже вне проектов django).

Я лично избегаю прототипов и mootools, потому что они могут сломать другой код javascript (или наоборот).

Если вы новичок в javascript и ajax, я бы порекомендовал jQuery, потому что это проще всего начать. Но я не ожидаю, что js framework будет интегрирован с django в основном потому, что в этом нет необходимости.

62

Я думаю, что это может быть то, что вы ищете:

http://dajaxproject.com/

Довольно хорошо документированы. Простое апи. Очень чистый и приятный. Я планирую использовать его в некоторых своих проектах. Это JS-библиотека агностик, и хорошо работает с jQuery, если это ваша вещь.

UPDATE:

Другие решения, аналогичные dajaxice, но не стандартный dajax.

В конце концов они в основном работают одинаково.

  • Определить/включить некоторые предопределенные URL-маршруты.
  • Зарегистрируйте модели/виды/функции, которые будут использоваться в качестве источников данных.
  • Наслаждайтесь.

UDATE2:

Этот совет супер старый. Возможно, следует исследовать другие решения.

+2

Я удивлен, что это не получило голоса. Выглядит отлично. Дайвинг сейчас. – Flowpoke

+0

Прошло уже полтора года, и проект выглядит так, как будто с тех пор у него не было много обновлений. Это хорошая рекомендация? –

+0

@TimSaylor Я бы сказал, что DajaxIce все еще довольно солидная библиотека, если это то решение, которое вы ищете: простой способ создать произвольные конечные точки ajax, которые вы можете использовать в javascript. Я лично не буду использовать обычный Dajax lib, поскольку вы в конечном итоге пишете много кода презентации в своих функциях просмотра. Это говорит о наличии завода твердых библиотек, доступных для создания конечных точек RESTful автоматически с ваших моделей (или других произвольных данных). (Я обновляю свой ответ ссылками). –

7

заказ Dajax:

Dajax Проект

Простой в использовании библиотеки AJAX для Django

быстро, легко и легкие библиотеки реализовать AJAX в ваших Джанго проектов. Готов к использованию через 5 минут.

Dajax является мощным инструментом легко и супер-быстрее развивать асинхронную логику презентации в веб-приложениях с помощью питона и почти нет линий JS исходного кода.

Он поддерживает до четырех наиболее популярных JS-фреймворков: Prototype, jQuery, Dojo и mootols.

+0

После того, как я опубликовал этот ответ, я заметил, что кто-то уже упоминал Dajax, но это ответ не описывает то, что предлагает библиотека (и не смог прокомментировать его) – denysonique

+1

И если вы проверите GITHUB READMEs, вы найдете: «Должен ли я использовать django-dajax или django-dajaxice? Одним словом, я создал эти проекты 4 года назад в качестве прекрасного инструмента для решения одной конкретной проблемы, которую я имел в то время. В эти дни использование этих проектов - плохая идея ». – jwd630

1

Если вам нужно работать с AJAX в ваших Джанго проектов с очень небольшим количеством установки и проста в использовании, мое предложение:

Джанго-Аякса (Github, Pypi)

Быстрая, гибкие и простые в использовании библиотеки AJAX для проектов django. Содержит ajax decorator, ajax middleware, ярлыки и многое другое.

Смежные вопросы