簡體   English   中英

請求模塊在 Python 中乘以 api 調用

[英]Requests module is multiplying api calls in Python

我正在使用 Requests python 模塊執行 RESTFUL POST API 調用來創建新項目。

問題:項目被復制。 有時會創建每個項目中的 3 個。 最終 api 中沒有對現有數據進行檢查以防止重復。

目標:我想發送數據以在名為 Netbox 的第三方應用程序中創建一個新項目,該應用程序由 Django 制成。

我做了什么?:

  • 我曾嘗試編寫代碼來檢查現有項目,但它仍然會重復。
  • 我嘗試設置一個計時器以將代碼的執行暫停 10 秒,直到請求完成。

流程如下所示:

Python Backend (Flask)         ---> Python Backend (Flask)           --> Netbox (Django)

Data Origin sent via Requests  ---> Data Netbox Calls (Via PyNetBox) --> Final DataStore

這兩個后端托管在 Cloud Foundry 中,而 Netbox 在 Prem 服務器上的 Linux 上運行。

我有一個像下面這樣的字典,代表我需要在 Netbox 中創建的每個項目。

Ex. payload = {'site':'1', 'device':'switch01'}

我通過循環將每條數據發送到我的中間件后端,以通過 pynetbox 對 netbox 進行最終的 api 調用。 我無法直接點擊netbox。

for payload in payloads:
     URL = f'{MIDDLEWARE_URL}/netbox/create_item'
     print(f'URL is: {URL} | Payload is {payload}')

     headers = { 'content-type': 'application/json', 'cache-control': "no-cache"}
     proxies={'http' : None, 'https': None}

     r = requests.post(URL, data=json.dumps(payload), headers=headers, verify=False, proxies=proxies)

對於為什么會發生這種情況以及改進我的基線代碼邏輯的任何最佳實踐,我將不勝感激。

一切順利,法拉茲

所以我經過更多研究后發現了它,結果證明 flask 正在創建兩個進程,因此每次運行我的函數兩次。

這是由於調試是真的,所以使用了這個:

app.run(debug=True, use_reloader=False)

暫無
暫無

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

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