在不同的python进程和ajax之间传递变量

时间:2017-06-28 15:03:56

标签: javascript python ajax django

最近我一直试图创建XHR,我发现Ajax是实现它的唯一顺利方式。抱歉我对Ajax缺乏了解,我刚刚启动它,我可能没有正确地做好一切。

让我们说有一个特定的形式:

<div style="margin: 0;float: left;width: 60px;height: 60px;cursor: pointer;text-decoration:none;display: block;padding: 0;">
    <form id="item_selection1" action="{% url 'Home:AccountPage' %}" method="post">
        {% csrf_token %}
        <input class="sendtrade" name="sendtrade1" type="submit" value="Send Offer">
    </form>

这是views.py:

...
if request.POST.get('sendtrade1'):
    ...
    openbox = "true"
    ...

这就是我呈现响应的方式(我知道这不是Ajax兼容的,假设dict已经转换为json):

res = render(request, 'Home/account.html', {'other_keys': 'other_values', 'openbox': openbox})
return HttpResponse(res)

如果openbox是&#34; true&#34;:

,我通常会打开div
if ("{{ openbox }}" == "true" ) {
    $("#someDiv").css("display", "block")
}
else if ( "{{ openbox }}" == "false" ) {
    $("#someDiv").css("display", "none")
}

但是,如果我在收到邮件请求后在另一个进程上执行某些嵌套函数,那该怎么办:

from multiprocessing import Process
...
if request.POST.get('sendtrade1'):
    ...
    openbox = "true"
    ...
    def func():
        time.sleep(10)
        openbox = "false"
    proc = Process(target=func)
    proc.start()
    ...
...

如何在不重新加载页面的情况下将其传递给Ajax / Javascript?因此,当提交表单时,在第一个10秒#someDiv可见,但10秒后它会再次消失?

如果不能用Ajax完成,那么另一个平滑的替代方案是什么?

0 个答案:

没有答案
相关问题