【问题标题】:How do I pass Javascript variables from my html template page to a Django views function?如何将 Javascript 变量从我的 html 模板页面传递到 Django 视图函数?
【发布时间】:2018-07-17 19:29:05
【问题描述】:

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

谁能帮我解决这个问题?

【问题讨论】:

  • 要访问 django,您必须访问服务器。您通过执行请求到达服务器。使用 django 了解 ajax。
  • 我认为您的意思是您不想刷新页面。只需单击即可执行功能?如果是这样,您需要使用XMLhttprequestAjax
  • @mohammed qudah 是的。我不想刷新页面。我想在单击时执行一个函数,并将按钮值传递给后端的函数
  • 我会回答这个问题,解决方案将使用 jQuery

标签: javascript jquery html django


【解决方案1】:

为此,您需要使用 Ajax,这就像在后台调用 url 而不会影响用户。但首先要调用一个 url(view) 我们需要一个 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>

【讨论】:

  • 兄弟..我尝试了你的确切代码..我能够得到警报..但是数据变量仍然没有传递给 views.py 函数,或者看起来如此。
  • 如果警报显示意味着它正在工作?您的数据应该在警报文本中的get this data: here*** 之后
  • 您的警报文本是什么?
  • 没问题,兄弟。它正在工作。我这边有一个小错误。感谢您的回答
猜你喜欢
  • 2020-08-09
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 2015-05-23
  • 2013-12-16
  • 2013-11-27
  • 2020-10-20
相关资源
最近更新 更多