Jsonデータ処理djangoでrequest.post/bodyの違い
プロジェクトの説明
CMDB資産を入庫する場合、クライアントで収集したデータはrequestsモジュールを介してサービス側に要求され、サービス側はdjango定義ビュー関数を介してデータを受信し、ステータスを返す必要があります.
方式1:サービス側はrequestを通過する.body受信要求
クライアントコード
View Code
serverコード
View Code
方式2:サービス側はrequestを通過する.POST受信要求
クライアントコード
View Code
serverコード
View Code
まとめ
djangoプロジェクトでPost送信要求データを取得する場合、requestを使用する.POSTで取得するデータがないのは、データが送信されていない場合ではない、可能な場合は相手のデータフォーマットrequestである.POST認識処理ができず、
このときrequestを通過することができる.どんなフォーマットのデータでも調べてみろ全てが受信できるbodyが受信したのは,オリジナルのリクエストボディデータである.
転載先:https://www.cnblogs.com/fanggege/p/10260387.html
CMDB資産を入庫する場合、クライアントで収集したデータはrequestsモジュールを介してサービス側に要求され、サービス側はdjango定義ビュー関数を介してデータを受信し、ステータスを返す必要があります.
方式1:サービス側はrequestを通過する.body受信要求
クライアントコード
import requests
import json
def asset():
info = {
'hostname': 'c.com', 'memory': '16G'}
url = "http://127.0.0.1:8000/api/asset/"
r1 = requests.post(
url=url,
data=json.dumps(info).encode('utf-8') # json ,
)
print(r1.text) #r1.text server
asset()
View Code
serverコード
from django.shortcuts import render,HttpResponse
from django.views.decorators.csrf import csrf_exempt
import json
@csrf_exempt # csrf , post tooken
def asset(request):
"""
:param request:
:return:
"""
info = json.loads(request.body.decode('utf-8'))
"""
b'{"hostname": "c.com", "memory": "16G"}
# json ,
""""
print(info)
return HttpResponse(" ")
View Code
方式2:サービス側はrequestを通過する.POST受信要求
クライアントコード
import requests
import json
def asset():
info = {
'hostname': 'c.com', 'memory': '16G'}
url = "http://127.0.0.1:8000/api/asset/"
r1 = requests.post(
url=url,
data={
'hostname':'ngix','mem':'6g'} # http hostname:ngix&mem:6g , request.POST
)
print(r1.text) #r1.text server
asset()
View Code
serverコード
from django.shortcuts import render,HttpResponse
from django.views.decorators.csrf import csrf_exempt
import json
@csrf_exempt # csrf , post tooken
def asset(request):
"""
:param request:
:return:
"""
print(request.POST) #request.POST ,requests
#
"""
http :
hostname:ngix&mem:6g ,reques.POST
"""
#print(request.body) #request.body , body
return HttpResponse(" ")
View Code
まとめ
djangoプロジェクトでPost送信要求データを取得する場合、requestを使用する.POSTで取得するデータがないのは、データが送信されていない場合ではない、可能な場合は相手のデータフォーマットrequestである.POST認識処理ができず、
このときrequestを通過することができる.どんなフォーマットのデータでも調べてみろ全てが受信できるbodyが受信したのは,オリジナルのリクエストボディデータである.
転載先:https://www.cnblogs.com/fanggege/p/10260387.html