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 でコーディングしないでください。

必要なものは 2 つあります。送信する JSON を準備し、必要な API に送信する必要があります。

  1. 送信するjsonデータを作成するには、「simplejson」を見てください。
  2. Python で別のサーバーにリクエストを送信するには、「urllib」を参照してください (たとえば、django を使用して POST リクエストを送信する方法は? ) 。

また、まっすぐに視界に入れないでください。そのための新しいクラスを作成します。したがって、あなたの見解では、次のようなものになります。

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 に答える