Post 使用 Django 请求外部 Rest 服务 - 使用返回的 json 更新模型
Post request to external Rest Service using Django - use returned json to update model
我需要一些关于使用 Camunda Rest API 和 Django 实现以下细节的最佳方式的建议:
1) 用户会看到一个表单 - 选择详细信息,然后使用 POST 向 camunda 请求
'http://localhost:8080/engine-rest/process-definition/key/Process_B_PerProject/start'
此 POST 请求中发送的详细信息包含 JSON RAW 中的 3 个变量:格式为:
{"variables":
{"UserID" : {"value" : "user.", "type": "String"},
"OrganisationID" : {"value" : "some value", "type": "String"}
},
"businessKey" : "SomeBusinessKey"
}
来自 views.py
从django.shortcuts导入渲染
来自 django.views.generic 导入模板视图
从 .forms 导入 StartProject
import requests
class StartProcessView(TemplateView):
template_name = 'startdeliveryphase.html'
def get(self, request):
form = StartProject()
return render(request, self.template_name, {'form':form})
def post(self,request):
form = StartProject()
url = "http://localhost:8080/engine-rest/process-definition/key/Process_B_PerProject/start"
payload = "{\"variables\":\r\n {\"Username\" : {\"value\" : \"[form.Username]\", \"type\": \"String\"},\r\n \"OrganisationInitiating\" : {\"value\" : \"[form.OrganisationInitiator]\", \"type\": \"String\"}},\r\n \"businessKey\" : {form.businessKey}\r\n }"
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data = payload)
return render(response, self.template_name, {'form':form})
响应以 200 连同 JSON 有效负载的形式返回:
{
"links": [
{
"method": "GET",
"href": "http://localhost:8080/engine-rest/process-instance/fbff8359-84cd-11ea-a2e1-00155d891509",
"rel": "self"
}
],
"id": "fbff8359-84cd-11ea-a2e1-00155d891509",
"definitionId": "Process_B_PerProject:1:71921815-737c-11ea-91a6-00155d891509",
"businessKey": "SomeBusinessKey",
"caseInstanceId": null,
"ended": false,
"suspended": false,
"tenantId": null
}
问题 1 - 从这部分开始 - 我如何从表单中获取变量到有效负载中:
我尝试过的方法得到了 500 个响应 - 所以这里出了点问题。
问题2 - 使用响应更新模型的方法是什么?
问题一:
使用 response.json()
从响应中获取 json,查看 Request doc
问题二:
为了保存使用 create or update method
Create or update django
我需要一些关于使用 Camunda Rest API 和 Django 实现以下细节的最佳方式的建议:
1) 用户会看到一个表单 - 选择详细信息,然后使用 POST 向 camunda 请求 'http://localhost:8080/engine-rest/process-definition/key/Process_B_PerProject/start'
此 POST 请求中发送的详细信息包含 JSON RAW 中的 3 个变量:格式为:
{"variables":
{"UserID" : {"value" : "user.", "type": "String"},
"OrganisationID" : {"value" : "some value", "type": "String"}
},
"businessKey" : "SomeBusinessKey"
}
来自 views.py
从django.shortcuts导入渲染 来自 django.views.generic 导入模板视图 从 .forms 导入 StartProject
import requests
class StartProcessView(TemplateView):
template_name = 'startdeliveryphase.html'
def get(self, request):
form = StartProject()
return render(request, self.template_name, {'form':form})
def post(self,request):
form = StartProject()
url = "http://localhost:8080/engine-rest/process-definition/key/Process_B_PerProject/start"
payload = "{\"variables\":\r\n {\"Username\" : {\"value\" : \"[form.Username]\", \"type\": \"String\"},\r\n \"OrganisationInitiating\" : {\"value\" : \"[form.OrganisationInitiator]\", \"type\": \"String\"}},\r\n \"businessKey\" : {form.businessKey}\r\n }"
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data = payload)
return render(response, self.template_name, {'form':form})
响应以 200 连同 JSON 有效负载的形式返回:
{
"links": [
{
"method": "GET",
"href": "http://localhost:8080/engine-rest/process-instance/fbff8359-84cd-11ea-a2e1-00155d891509",
"rel": "self"
}
],
"id": "fbff8359-84cd-11ea-a2e1-00155d891509",
"definitionId": "Process_B_PerProject:1:71921815-737c-11ea-91a6-00155d891509",
"businessKey": "SomeBusinessKey",
"caseInstanceId": null,
"ended": false,
"suspended": false,
"tenantId": null
}
问题 1 - 从这部分开始 - 我如何从表单中获取变量到有效负载中: 我尝试过的方法得到了 500 个响应 - 所以这里出了点问题。
问题2 - 使用响应更新模型的方法是什么?
问题一:
使用 response.json()
从响应中获取 json,查看 Request doc
问题二:
为了保存使用 create or update method
Create or update django