0

如果我有一个像这样<a href="/account/user">Get User Data</a>指向我自己服务器内部视图的链接,有没有办法将 json 对象(可能只是使用 ajax?)发送到另一台外部服务器并检索答案?像这样的东西:

from django.shortcuts import render

def profile(request):
   #send a json object to another server like http://www.myotherserver.com/user
   #get the answer and process it
   return render(request, 'accounts/profile.html' , 
                {'profile_user': data_from_the_external_server})

上面我当然可以用 jquery-ajax 来实现它,但我只是想知道我是否可以这样做......

提前致谢。

4

2 回答 2

1

当然可以。为什么不可能?

如果没有必要,不要在 AJAX 中编码。

您需要两件事,您需要准备要发送的 JSon,然后您需要将其发送到您想要的 API:

  1. 查看“simplejson”以创建要发送的 json 数据。
  2. 查看“urllib”以在 Python 中向另一台服务器发送请求(例如:How to send a POST request using django?

也不要把它直接放在你的视野中。为它创建一个新类。因此,在您看来,您将拥有类似的东西:

def profile(request):
    # instantiate your service here (better with DI)

    profile_user = my_service.get_profile_user()
    return render(
        request, 
        'accounts/profile.html' , 
        {
            'profile_user': profile_user
        }
    )
于 2013-03-28T02:02:26.513 回答
0

如果您需要将 HTTP 数据(通过 POST 或 GET)发送到另一台服务器并从您的视图中接收结果,您可以使用 Python 的urllib2库。但是,有一个更简单的第三方库,称为Requests可以为您处理此任务。

于 2013-03-28T02:01:19.257 回答