Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将javascript变量值传递给django中的views.py函数?_Javascript_Json_Django - Fatal编程技术网

如何将javascript变量值传递给django中的views.py函数?

如何将javascript变量值传递给django中的views.py函数?,javascript,json,django,Javascript,Json,Django,我正在尝试将从html页面中的javascript标记生成的字符串发送到views.py函数。我将使用该值将其呈现到另一个html页面,另一个javascript将使用它 这是解析json数据的变量: var url = data.result.docs[i].source.enriched.url.url; 我想在views.py中将“url”发送到我的函数,但我无法找到一种方法 我还想保留一个链接,这样当用户单击它时,“url”将传递到views.py,我的函数将其发送到其他html文件

我正在尝试将从html页面中的javascript标记生成的字符串发送到views.py函数。我将使用该值将其呈现到另一个html页面,另一个javascript将使用它

这是解析json数据的变量:

var url = data.result.docs[i].source.enriched.url.url;
我想在views.py中将“url”发送到我的函数,但我无法找到一种方法

我还想保留一个链接,这样当用户单击它时,“url”将传递到views.py,我的函数将其发送到其他html文件

sjd += "<br/>" + data.result.docs[i].source.enriched.url.title +
            '<a href="/rawHtmlText/url">' + ' Read more' + '</a>' + '<br>'
sjd+=“
”+数据.result.docs[i].source.riched.url.title+ “+”
这是一种链接,我想在我的网页。 我知道urls.py应该有一个合适的模式,但我无法理解

也许jQuery可以使用,但我是这个领域的noob,所以有点困在这里


请指导我。

最简单的方法可能就是构建一个AJAX查询。试着这样做:

<script type="text/javascript">
    $(document).ready(function() {
        var url = data.result.docs[i].source.enriched.url.url;
        $("#send-my-url-to-django-button").click(function() {
            $.ajax({
                url: "/process_url_from_client",
                type: "POST",
                dataType: "json",
                data: {
                    url: url,
                    csrfmiddlewaretoken: '{{ csrf_token }}'
                    },
                success : function(json) {
                    alert("Successfully sent the URL to Django");
                },
                error : function(xhr,errmsg,err) {
                    alert("Could not send URL to Django. Error: " + xhr.status + ": " + xhr.responseText);
                }
            });
        });
    });
</script>
<button type="button" id="send-my-url-to-django-button">Send URL to Django View</button>

是的,您只能使用锚定标记,但在这种情况下,您将发送如下数据
. 这将是一个简单的get请求,url将被发送到服务器 您可能需要对url进行ro编码,因为它包含特殊字符

var val = EncodeURI(url);

在django中可以有一个route变量,比如
GET”/rawHtmlText/:url“
,您可以在那里抓取
url
。我不熟悉Django,但我确信它应该有一个从路由中获取变量的工具。我很困惑,为什么要尝试不同帖子的不同解决方案,但没有一个能通过传递值来查看我想导航到其他html页面。因为其他javascript使用此url调用其他API并在那里解析JSON。如果要重定向,只需调用
window.location.replace('http://take-me-somewhere');紧跟在
警报之后(“成功地将URL发送到Django”)。不工作。可以保留标签而不是按钮吗?当然可以。链接可以直接发布到视图,也可以使用AJAX异步处理。如果您决定使用AJAX,请记住调用
preventDefault()
var val = EncodeURI(url);