1

这是我的 Javascript 代码:

expr = "A simple string"
$.ajax({
    type: "GET",
    url: "/ajaxrequest/get_dt_paragraphs?expr=" + expr,
    timeout: 8000,
    success: function(data) { doSomething(); }
});

在我的 django 视图中,我编写了这个方法:

def get_dt_paragraphs(request):
    if request.method == 'GET':
        my_string = request.GET["expr"]
        # print on the console for debugging purposes.
        print my_string
    # Do other stuff

控制台的输出是[u"A simple string"],所以我发现参数名返回的是一个数组。当然,我可以写 request.GET["expr"][0] 来获取字符串,但是我想知道为什么我得到一个列表而不是字符串,以及如何避免这种情况以写得更好更优雅代码。

4

1 回答 1

1

GET 和 POST 对象属于 QueryDict 类,旨在处理每个键 ( docs ) 的多个值。

如果你确定你想要一个值,我会建议

request.GET.get('expr', [])[:1]

如果 'expr' 不可用,这将退回到空数组,但这应该是惯用的 Python,因为 [] 的布尔值为 False。

于 2012-12-06T12:24:22.753 回答