Какая лучшая библиотека AJAX для Django? [закрыто]


108

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

С уважением,
Крисс


Изменил заголовок вашего вопроса на более актуальный.
mmcdole

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

Кажется, что ответы здесь сейчас сильно устарели, поскольку такие фреймворки, как Django REST Framework и Tastypie, кажутся более активными и теперь предпочитаются большинством разработчиков, в то время как у других, похоже, возникают проблемы с фреймворками, которые в настоящее время менее поддерживаются (например, Dajax ).
Пол-Себастьян Маноле

Ответы:


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
Ссылки, кажется, снова в сети.
Soviut

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

2
Хотя jQuery - это фантастика, к сожалению, Django не имеет явной интеграции (за исключением администратора) с его формами или представлениями.
Cerin

2
Последняя ссылка больше не работает.
svenwildermann

62

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

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

ОБНОВИТЬ:

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

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

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

UDATE2:

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


2
Я удивлен, что это не получило голосов. Выглядит отлично. Нырнуть сейчас.
Бен Китинг,

Прошло 1,5 года, и похоже, что с тех пор у проекта не было много обновлений. Это все еще хорошая рекомендация?
Тим Сэйлор

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

super lib для реализации ajax в django
Сурья

1
На странице Github для Dajax теперь написано 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

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

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

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

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


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

1
И если вы посмотрите README на Github, вы найдете: «Что мне следует использовать: django-dajax или django-dajaxice?» Одним словом, нет. Я создал эти проекты 4 года назад как отличный инструмент для решения одной конкретной проблемы, которая у меня была в то время. . В наши дни использование этих проектов - плохая идея ».
jwd630

4

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

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

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

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

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

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


2

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

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

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


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

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

Фактически, даже администратор Django переключается на JQuery: code.djangoproject.com/changeset/12297
Крис Лоулор

1

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


1

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

django-ajax ( Github , Pypi )

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


0

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

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

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


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.