簡體   English   中英

從 Django 視圖調用 REST API

[英]Calling a REST API from django view

有什么方法可以從 Django 視圖進行 RESTful api 調用嗎?

我正在嘗試從 django 視圖中沿着 url 傳遞標頭和參數。 我用谷歌搜索了半個小時,但找不到任何有趣的東西。

任何幫助,將不勝感激

是的,當然有。 你可以使用urllib2.urlopen但我更喜歡requests

import requests

def my_django_view(request):
    if request.method == 'POST':
        r = requests.post('https://www.somedomain.com/some/url/save', params=request.POST)
    else:
        r = requests.get('https://www.somedomain.com/some/url/save', params=request.GET)
    if r.status_code == 200:
        return HttpResponse('Yay, it worked')
    return HttpResponse('Could not save data')

requests 庫是 urllib3 之上的一個非常簡單的 API,您可以在此處找到有關使用它發出請求所需了解的所有信息。

是的,我正在發布我的源代碼,它可能對您有所幫助

import requests
def my_django_view(request):
    url = "https://test"
    header = {
    "Content-Type":"application/json",
    "X-Client-Id":"6786787678f7dd8we77e787",
    "X-Client-Secret":"96777676767585",
    }
    payload = {   
    "subscriptionId" :"3456745",
    "planId" : "check",
    "returnUrl": "https://www.linkedin.com/in/itsharshyadav/" 
    }
    result = requests.post(url,  data=json.dumps(payload), headers=header)
    if result.status_code == 200:
        return HttpResponse('Successful')
    return HttpResponse('Something went wrong')

在獲取 API 的情況下

import requests

def my_django_view(request):
    url = "https://test"
    header = {
    "Content-Type":"application/json",
    "X-Client-Id":"6786787678f7dd8we77e787",
    "X-Client-Secret":"96777676767585",
    }
    
    result = requests.get(url,headers=header)
    if result.status_code == 200:
        return HttpResponse('Successful')
    return HttpResponse('Something went wrong')
 ## POST Data To Django Server using python script ##  
   def sendDataToServer(server_url, people_count,store_id, brand_id, time_slot, footfall_time):
        try:
            result = requests.post(url="url", data={"people_count": people_count, "store_id": store_id, "brand_id": brand_id,"time_slot": time_slot, "footfall_time": footfall_time})
            print(result)
            lJsonResult = result.json()
            if lJsonResult['ResponseCode'] == 200:
                print("Data Send")
                info("Data Sent to the server successfully: ")
    
        except Exception as e:
            print("Failed to send json to server....", e)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM