Использование HackerEarth API для интеграции онлайн-компилятора в Django - PullRequest
0 голосов
/ 16 апреля 2020

Попытка интегрировать онлайн-компилятор в мой проект django с использованием HackerEarth API. Этот код я получаю, когда запускаю проект на локальном

Доступ к 127.0.0.1 был запрещен У вас нет прав для просмотра этой страницы. ОШИБКА HTTP 403

Это мои views.py

@login_required
@student_required
#From HackerEarth API
def runCode(request):
    if request.is_ajax():
        run_url = "https://api.hackerearth.com/v3/code/run/"
        source = request.POST['source']
        lang = request.POST['lang']
        data = {
            'client_secret': '***',
            'async': 0,
            'source': source,
            'lang': lang,
            'time_limit': 5,
            'memory_limit': 262144,
        }
        if 'input' in request.POST:
            data['input'] = request.POST['input']
        r = requests.post(run_url, data=data)
        return JsonResponse(r.json(), safe=False)
    else:
        return HttpResponseForbidden()

и html:

<code>{% load static %}

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Online Code Compiler</title>
        <script src="{% static 'fifth/js/jquery.min.js' %}" type="text/javascript" charset="utf-8"></script>
        <script src="{% static 'fifth/js/bootstrap.min.js' %}" type="text/javascript" charset="utf-8"></script>
        <script src="{% static 'fifth/js/ace.js' %}" type="text/javascript" charset="utf-8"></script>
        <script src="{% static 'fifth/js/ext-statusbar.js' %}" type="text/javascript" charset="utf-8"></script>
        <script src="{% static 'fifth/js/ext-language_tools.js' %}" type="text/javascript" charset="utf-8"></script>

        <script src="{% static 'fifth/js/customjs.js' %}" type="text/javascript" charset="utf-8"></script>
        <link rel="stylesheet" type="text/css" href="{% static 'fifth/css/bootstrap.min.css' %}" />
        <link rel="stylesheet" type="text/css" href="{% static 'fifth/css/custom.css' %}" />
    </head>

    <body>
        <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}" />

        <nav class="navbar navbar-default">
          <div class="container-fluid">
            <div class="navbar-header">
              <a style="color:#fff;"class="navbar-brand" href="#">HackerEarth</a>
            </div>
            <ul class="nav navbar-nav navbar-right">
              <li><a href="#">MyIDE</a></li>
            </ul>
          </div>
        </nav>

        <h4 style="margin-left:16%">An Online Compiler tool developed using django/python</h4>
        <hr>
        <br><br>

        <div class="container">
            <div id="topbar">
                <div class="lang-choose">
                    <select class="form-control" name="lang" id="lang">
                        <option value="C">C (gcc 4.8.4)</option>
                        <option value="CPP" selected>C++ (g++ 4.8.4)</option>
                        <option value="CLOJURE">Clojure (clojure 1.1.0)</option>
                        <option value="CSS">CSS</option>
                        <option value="CSHARP">C# (mono 3.2.8)</option>
                        <option value="GO">Go (go 1.4.2)</option>
                        <option value="HASKELL">Haskell (ghc 7.4.1)</option>
                        <option value="JAVA">Java (openjdk 1.7.0_09)</option>
                        <option value="JAVASCRIPT">JavaScript (Rhino 1.7)</option>
                        <option value="LISP">Lisp (csc 4.8.0.5)</option>
                        <option value="OBJECTIVEC">Objective-C (clang 3.3)</option>
                        <option value="PASCAL">Pascal (fpc 2.6.2)</option>
                        <option value="PERL">Perl (perl 5.18.2)</option>
                        <option value="PHP">PHP (php 5.5.9)</option>
                        <option value="PYTHON">Python (python 2.7.6)</option>
                        <option value="RUBY">Ruby (ruby 2.1.1)</option>
                        <option value="R">R (RScript 3.0.2)</option>
                        <option value="RUST">Rust (rustc 1.4.0)</option>
                        <option value="SCALA">Scala (scalac 2.9.2)</option>
                        <option value="TEXTFILE">Text</option>
                    </select>

                </div>
                <div id="settings">
                    <div class="theme-choose">
                        <select class="form-control" name="theme" id="theme">
                            <option value="Light" selected>Light</option>
                            <option value="Monokai">Monokai</option>
                            <option value="Solarised Light">Solarised Light</option>
                            <option value="Twilight">Twilight</option>
                        </select>
                    </div>
                    <a class="" id="download">
                        download code
                        <span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span>
                    </a>
                </div>
            </div>

            <pre id="editor">
Скомпилируйте и запустите Скомпилируйте и запустите
 
Выход
 
Вход
 
Подробности журнала:
var myDate = new Date (); var hours = myDate.getHours (); var minutes = myDate.getMinutes (); var ampm = часы> = 12? 'до полудня, после полудня'; часы = часы% 12; часы = часы? часов: 12; минуты = минуты <10? «0» + минуты: минуты; var strTime = часы + ':' + минуты + ампер; document.getElementById ("demo"). inner HTML = myDate.getDate () + "/" + (parseInt (myDate.getMonth ()) + 1) .toString () + "/" + myDate.getFullYear () + "at" + strTime; </script>
время (se c)
Память (КБ)
Состояние выполнения
Статус компиляции
<класс нижнего колонтитула = "container"> Тестирование

Согласно документации HackerEarth:

Если не указать client_secret, возвращается следующий Запрещенный ответ 403.

Я явно ошибаюсь, поскольку предполагал, что client_secret будет возвращен через мои представления. ру

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...