创作灵感:工作中,前端因为某些原因(极其特殊)无法发送两个请求,需要后端实现
言归正传:
背景:使用django+apscheduler实现定时任务,现在创建任务以及启动任务为两个接口,基于类
python
now_time = timezone.now().strftime('%Y-%m-%d %H:%M:%S')
@method_decorator(csrf_exempt, name='dispatch')
class TestPlanView(View):
def post(self, request, *args, **kwargs):
argsinfo = loads(request.body)
action = argsinfo.pop("action")
if action == 'create':
return self.create_testplan(argsinfo)
def create_testplan(self, argsinfo):
# 创建testplan,同时需要创建report、testcasetask
try:
。。。
except Exception as e:
return ResponseResult.error(e)
else:
return PlanJobView.start_job(self, planid=plan.id)
@method_decorator(csrf_exempt, name='dispatch')
class PlanJobView(View):
def post(self, request, *args, **kwargs):
argsinfo = loads(request.body)
action = argsinfo.pop("action")
planid = argsinfo.get("id")
if action == 'start':
return self.start_job(planid)
def start_job(self, planid):
。。。
现在由于前端无法发送两个请求,只能后端来操作;
如上所示:
python
return PlanJobView.start_job(self, planid=plan.id)
调用了启动方法,将所需参数传输过来即可
如果是视图函数,可以直接:
python
return start_job(request)
第一次见到这种需求,全都仰仗我们前端。