Django: Как мне изменить свое простое приложение на использование Ajax? - PullRequest
0 голосов
/ 15 июня 2010

В настоящее время у меня есть веб-страница, где пользователь вводит некоторые данные и затем нажимает кнопку отправки.Я обрабатываю данные в views.py, а затем использую тот же шаблон Django для возврата и отображения исходных данных и результатов.То, что я хотел бы сделать, это попытаться придать ему немного больше современного внешнего вида.Вы знаете, что такое, страница не обновляется, а показывает вращающийся диск, пока не отобразятся результаты.Я предполагаю, что это означает использование Ajax?Насколько сложно изменить такое простое приложение, чтобы использовать Ajax?Что вовлечено?Какие инструменты лучше всего использовать?JQuery

Ответы [ 3 ]

2 голосов
/ 15 июня 2010

Я склонен писать свои представления на очень детальном уровне, вместо того, чтобы один вид отображал целую страницу. Это позволяет мне взять все эти компоненты и использовать их по-разному.

Например, если у меня есть представление с формой и списком результатов под формой, я бы написал минималистичный вид для формы, для списка, а затем я бы написал простое представление для «страницы», которое связывает их всех вместе.

В вашем просмотре страницы вы можете вызывать другие методы views, передавая им исходный объект запроса вместе со всем, что им нужно. Вы можете обернуть .context из ответов этого представления в DIV или что-то, что в свою очередь может динамически обновляться с помощью javascript (jQuery делает это относительно безболезненно).

Чтобы обновить эти DIV с минималистскими представлениями, вам, конечно, необходимо настроить их в своем urls.py. Скорее всего, вы будете использовать jQuery для передачи некоторых данных GET или POST в эти меньшие представления.

Также я рекомендую использовать AJAX как «последнее средство». Под этим я подразумеваю, что если у вас есть сравнительно небольшой статический список данных, просто передайте все это вашему основному представлению в javascript и действуйте на стороне клиента. Но если у вас намного больший набор данных или довольно быстро изменяющийся динамический контент (или любой другой вид ненадежных данных), это хорошее применение для AJAX.

1 голос
/ 15 июня 2010

этот плагин jquery полезен для того, что вы хотите.

1 голос
/ 15 июня 2010

Все, что вам нужно сделать, это отправить форму с использованием ajax

Пример:

$('#form').bind('submit', function(){

   $.ajax({url:$(this).attr('action'),
           type: "POST",
           data: {//form inputs},
           success:function(response){
              // code to update DOM
           }
          });
  return false;
});

это будет отправить форму с использованием ajax и остановить страницу от перезагрузки.

Я бы порекомендовал вам взглянуть на пример django ajax , здесь есть четкое объяснение обработки ajax на django.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...