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

#javascript #django #django-views #python-requests #fetch

#javascript #django #django-представления #python-запросы #извлечение

Вопрос:

Как я могу перехватить и обработать произвольный запрос в представлении Django?

Например:

 def index(request):
    template_name = 'index.html'
     
    users = User.objects.all()

    return render(request, template_name, {'users': users})
  

Параметр запроса здесь отвечает только за загрузку индексной страницы, я прав? Но как мне обработать произвольный запрос из интерфейса, например, мое представление получило данные из базы данных. Мне нужно перенести его во внешнюю часть моего приложения. Как я могу это сделать? Без использования контекста.

Запрос от JS:

 fetch('index.html', {
method: 'GET',
}).then(response => response.json()).then(data => console.log(data))
  

Ответ №1:

Вы можете использовать request.session .

Например:

 def index(request):
    template_name = 'index.html'
 
    users = User.objects.all()
    request.session["users"] = users #add users list to request.session dict. 

    return render(request, template_name)

def alluser(request):
    template_name = 'profile.html'
    if request.session["users"]:
        return render(request, template_name)
    else:
        return redirect('/index')
  

Сначала вам нужно перейти на страницу представлений, извлечь всех пользователей из базы данных один раз и распечатать их в «request.session». Затем вы можете отобразить эту информацию на любой странице с помощью «request.session».

При входе на страницу alluser вы можете отображать информацию о пользователях с помощью {{request.session.users}}