Блокирует ли Django данные requests.post в производственной платформе?
На моем веб-сервере Django в продакшене у меня есть следующий фрагмент кода, где я помещаю некоторые данные из объекта в postBody и отправляю данные на другой сервер для обработки
def sendOrderToRestaurant(session_id):
order = Order.objects.filter(session_id = session_id).values()
#Create a postBody and load the payload
postBody = dict()
postBody['order'] = order[0]
postBody['order']['orderCreationDateTime'] = order[0]['orderCreationDateTime'].isoformat()
postBody['order']['webhookDateTimePaymentReceived'] = order[0]['webhookDateTimePaymentReceived'].isoformat()
#Extract the cartItems corresponding to the order session_id
postBody['cartItems'] = list()
cartItems = CartItem.objects.filter(cart_id = session_id)
for item in cartItems:
tmp = dict()
tmp['quantity'] = int(item.quantity)
tmp['productName'] = item.product.name
tmp['productUnitPrice'] = float(item.product.price)
tmp['DeliveryFee'] = float(item.restaurant.delivery_fee)
tmp['bagFee'] = float(item.restaurant.bagFee)
postBody['cartItems'].append(tmp)
#Request post
url = 'http://someservername.dk/submitOrder'
response = requests.post(url, json = postBody, headers={"Content-Type":"application/json"})
return response.status_code, postBody
Я проверил в журнале, что postBody существует и имеет правильное содержимое, которое я ожидаю. Однако при отправке на другой сервер, работающий на flask, ничего не получено.
@app.route('/submitOrder', methods = ['GET','POST'])
def receiveOrder():
content = request.json
logging.info('The received content')
logging.debug(type(content))
logging.debug(content)
#Print the content
printKitchenThread = threading.Thread(target = printKitchen, args = (printer_ip, content,))
printKitchenThread.start()
printHostThread = threading.Thread(target = printHost, args = (printer_ip, content,))
printHostThread.start()
#Only print driver if it is a delivery
if content['order']['delivery']:
printDriverThread = threading.Thread(target = printDriver, args = (printer_ip, content,))
printDriverThread.start()
printReceiptThread = threading.Thread(target = printReceipt, args = (printer_ip, content, receiptLogoPath,))
printReceiptThread.start()
printReceiptThread = threading.Thread(target = printReceipt, args = (printer_ip, content, receiptLogoPath,))
printReceiptThread.start()
return 'success'
В content
должно быть postBody, отправленное из моего Django, но вместо этого я получаю NoneType, что очень странно. Есть ли что-то в функции безопасности Django, что блокирует отправку моего postBody?