Django - сценарий «вызов и ответ» (создайте случайную строку и подпишите ее клиенту, чтобы она проверила на сервере) - PullRequest
0 голосов
/ 06 октября 2018

В asp.net я использую этот код: (на стороне сервера)

if (!post-back)
   create challenge
else
   verify response

в java-скрипте: (на стороне клиента)

onclientclick(aspBTN)
   response = sign(challenge)

примечание: в верхней кодовой странице загружаетсяи создайте вызов, чтобы пользователь щелкнул asp btn на html-странице, запустите sign func в java-скрипте и на странице загрузки run, проверьте ответ.

в Django я создаю вызов и сохраняю в скрытом элементе: файл view.py:

def index(request):   
    rng = uuid.uuid4().hex       
    request.session["challenge"] = rng   
    return render(request,"Djangoapp/index.html", {'challenge': rng})

и я определяю это btn:

<input id="btnLogin" type="button" value="Login" class="btn btn-primary btn-lg" onclick="Sign()" />

в знаковой функции я получаю ответ.Теперь мне нужно запустить серверную функцию (python) для проверки ответа.

Я новичок в django.

1 Ответ

0 голосов
/ 06 октября 2018

Хорошо, насколько я понимаю, то, что вы пытаетесь достичь нажатием кнопки, это вызов функции на стороне сервера?

Существуют различные способы, которыми вы можете достичь этого: 1. Xhr или Ajax Call 2Использование fetch api в javascript

Все это будет взаимодействовать с RESTful API, созданным на бэкэнде django.Например:

def my_api_call(request):
    post_data = json.loads(request.body)
    perform_activity = post_data['activity_status']
    if perform_activity == True:
        call_function()

    return JsonResponse({"status":200, "response":"SUCCESS"})

Если это не то, что вы ищете, возможно, внесите дополнительную ясность, разместив код.

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