Django, как обновить страницу после получения POST-запроса? - PullRequest
0 голосов
/ 28 декабря 2018

Я новичок в Django.

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

Я не нахожу никакого решения для этого.

Этот код, на мой взгляд:

@csrf_exempt
def prem(request):

    if request.method == 'GET':
        print("GET")
        context = {'contenu': request.GET.get("request_received", "nothing") }
    elif request.method == 'POST':
        print("POST")
        datar = request.GET.get('request_received','rien')
        context = { 'request_received' : datar }

    return render(request, 'polls/seco.html', context)

Код в моем шаблоне:

{% if request_received %}
    {% csrf_token %}
    <p>Message received from POST request : {{ request_received }}</p>
{% endif %}

Кто-то может мне помочь?

1 Ответ

0 голосов
/ 29 декабря 2018

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

Это технически невозможно, так как django не поддерживает связь с клиентом после отправки ответа.

Вам необходимо сохранить входящий почтовый запрос (из POSTMAN) в базу данных.

Затем в шаблоне вы можете использовать AJAX для постоянной проверки поступления нового запроса или использовать веб-сокеты для сохранения соединения с пользователем.

Веб-сокеты работают быстрее, чем AJAX.Таким образом, они являются тем, что вы хотите, как вы написали «мгновенно» в комментариях.В худшем случае запрос AJAX может занять несколько секунд.

В django вы можете использовать django-каналы для веб-сокетов

каналы django

...