使用Python/Djang的jQuery getJSON输出

2024-10-01 15:47:02 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我尝试使用jQuery.getJSON对本地web服务器进行一个简单的调用,使用python/django来提供请求。使用的地址是:

http://localhost:8000/api/0.1/tonight-mobile.json?callback=jsonp1290277462296

我正在尝试编写一个简单的web视图,它可以访问这个url并返回一个JSON包作为结果(稍后会担心实际的元素值/布局)。在

下面是我的一个简单尝试,只是提醒/返回数据:

^{pr2}$

我可以直接访问这个URL,可以在http://localhost:8000/api/0.1/tonight-mobile.jsonhttp://localhost:8000/api/0.1/tonight-mobile.json&callback=jsonp1290277462296取回一个有效的JSON包…所以我假设它在我的noob javascript中:)

我的视图.py生成此响应的函数如下所示:

def tonight_mobile(request):
    callback = request.GET.get('callback=?', '')    

    def with_rank(rank, place):
        return (rank > 0)

    place_data = dict(
        Places = [make_mobile_place_dict(request, p) for p in Place.objects.all()]
    )

    xml_bytes = json.dumps(place_data)
    xml_bytes = callback + '(' + xml_bytes + ');'

    return HttpResponse(xml_bytes, mimetype="application/json")

与对应网址.py配置:

(r'^tonight-mobile.json','iphone_api.views.tonight_mobile'),

对于如何使用回调,我还是有些困惑,所以也许这就是我的问题所在。注意我可以直接打电话给a'blah.json文件'给我一个响应的文件,但不是通过有线URL。有人能帮我指点方向吗?


Tags: 视图apiwebjsonlocalhosthttpbytesrequest
1条回答
网友
1楼 · 发布于 2024-10-01 15:47:02

首先,callback = request.GET.get('callback=?', '')不会得到callback的值。在

callback = request.GET.get( 'callback', None ) 

效果更好。在

去调试这种东西。您可能希望在Django-view函数中包含print语句,这样就可以看到发生了什么。例如:print repr(request.GET)在视图函数中放入一个很有用的东西,这样您就可以看到GET字典。在

相关问题 更多 >

    热门问题