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

时间:2015-12-08 03:03:20

标签: 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文件。

sjd += "<br/>" + data.result.docs[i].source.enriched.url.title +
            '<a href="/rawHtmlText/url">' + ' Read more' + '</a>' + '<br>'

这是我希望在我的页面中提供的一种链接。 我知道urls.py应该有一个合适的模式,但我无法弄明白。

可能是jQuery可以使用,但我是这个领域的菜鸟,所以有点卡在这里。

请指导我。

2 个答案:

答案 0 :(得分:3)

最简单的方法可能就是构建一个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>

单击该按钮应将url发送到您的Django视图。然后在Django方面,你可以这样访问url

def process_url_from_client(request):
    url = request.POST.get('url')

答案 1 :(得分:0)

是的,您只能使用锚标记,但在这种情况下,您将发送此类数据     http://host/path_to_view.py/urlValueToSend。 这将是一个简单的get请求,url将被发送到服务器 您可能需要对URL进行编码,因为它包含特殊字符

var val = EncodeURI(url);