contest.py 文件源码

python
阅读 35 收藏 0 点赞 0 评论 0

项目:harnas 作者: harnasproject 项目源码 文件源码
def save_submit(request, contest_id):
    contest = Contest.objects.get(pk=contest_id)
    if request.method == 'POST':
        submit_form = SubmitForm(request.POST, request.FILES, contest=contest)
        print(str(request.FILES))
        if submit_form.is_valid():
            webhook_secret = _generate_webhook_secret()

            submit = Submit()
            submit.submitter = request.user
            submit.task = submit_form.cleaned_data['task']
            submit.solution = bytes(request.FILES['solution'].read())
            submit.webhook_secret = webhook_secret
            submit.save()

            template_id = submit.task.test_environment.template_name
            template = heraclient.Template(template_id)
            sandbox = heraclient.Sandbox(submit.id)
            webhook_url = 'http://' if settings.DEBUG else 'https://'
            host = request.get_host() if settings.DEBUG else settings.SITE_URL
            webhook_url += host
            webhook_url += reverse('checker_check', args=[submit.pk])

            sandbox.create(10,
                           template,
                           memory=512,
                           whole_node=False if settings.DEBUG else True,
                           async=True,
                           webhook_url=webhook_url,
                           webhook_secret=webhook_secret,
                           priority=None,
                           priority_growth=None)

            return HttpResponseRedirect(reverse('submit_details',
                                                args=[submit.pk]))
    return render(request, 'contest/contest_submit.html', {
        'submit_form': submit_form,
        'contest_id': contest_id,
    })
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号