Каков наилучший подход к использованию django и ajax?
Сейчас я работаю над своим первым большим проектом и не могу понять, как использовать Django с ajax. На моем сайте есть несколько сервисов, которые работают отдельно и написаны на javascript, но иногда мне нужно отправить некоторую информацию на сервер. Также у меня есть пользовательский интерфейс администратора, который содержит различные операции по изменению базы данных. Все эти действия должны выполняться без перезагрузки страницы (используя ajax post и get запросы).
Итак, я думаю, у меня есть два способа сделать это:
- Использование ajax и классических Django views для каждой операции.
- Использование ajax и интегрированных в мой сайт Django REST Framework API методов.
Камнем преткновения является то, что я не буду использовать методы этого API из других типов клиентов, а буду вызывать их из браузеров пользователей через ajax. Какой подход будет лучшим в моей ситуации? Мне кажется, что второй способ более "серьезный", но я не имею большого опыта создания подобных проектов и не могу говорить прямо.
Вам не нужно интегрировать REST. Вы можете сделать ajax вызов к обычному представлению, как вы это делаете при взаимодействии с пользователем. Представление может возвращать http-ответ или JSON или все, что вам нужно. Если вы хотите изменить что-то в DOM без обновления страницы, я могу предложить HTMX (https://htmx.org/)
стандартный вызов ajax для получения некоторого json:
let datas = {id: $(this).val(),};
$.ajax({
url: "{% url 'to_your_view' %}",
type: "POST",
data: datas,
success: function (json) {
console.log(json);
},
error: function (xhr, errmsg, err) {
console.log(xhr.status + ": " + xhr.responseText);
}
});
и в поле зрения:
def to_your_view(request):
if request.method == "POST":
id = request.POST.get('id', 0)
if id != 0:
return HttpResponse(json.dumps(100), content_type="application/json")