如何将我的html模板页面中的Javascript变量传递给Django视图函数?

时间:2018-02-07 13:23:56

标签: javascript jquery html django

我正在研究Django环境。 我在我的html页面中创建了一个表单,其中包含一个文本框,用于输入标签,例如“输入您的姓名”。 我在文本框下面有一个提交按钮。 我需要将输入的名称作为值传递给按钮,然后将此按钮值传递给views.py中的python函数。

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:0)

要做到这一点,你需要使用Ajax,就像在后台调用url而不影响用户一样。但首先要调用一个网址(视图),我们需要一个网址和一个视图。所以我认为你有类似的东西

url('^click/btn/(?P<data>[0-9]+)', views.click_btn, name="btn_click");

和视图

def click_btn(request, data):
    # do whatever you want with the data....
    return HttpResponse('Done')

现在要从前端调用它,我们将使用jQuery.ajax

首先你有按钮

<button id="btn_click">Click me!</button>

现在创建一个脚本标记并键入以下内容

  

脚本标签必须在按钮后面才能看到它

<!-- if you haven't included jQuery -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
// get your input value...
var data = $('#my_input').val();
$.ajax({
    url: `/click/btn/${data}`,
    success: function (res) {
    // every code in this function will execute when Ajax call the url
    alert(`Nice! you called the url and get this data: ${res}`)
    }
});
</script>