Javascript 如何将javscript score变量发布到django中的视图?

Javascript 如何将javscript score变量发布到django中的视图?,javascript,python,django,django-models,django-views,Javascript,Python,Django,Django Models,Django Views,我正在使用JavaScript Django开发测验应用程序。我坚持把变量发布到Django(DB)中。我不知道如何将Java脚本的score变量与用户登录到应用程序的名称一起发布。我将分享JavaScript的代码 注意:这里我没有使用views.py来计算用户的分数。我使用JavaScript验证和计算分数 我从中得到了三个问题: 如何从JavaScript到Django视图获取变量值?请告诉我怎么走 我们可以使用ajax将变量值发布到Django视图中吗 如果该值显示在html模板中。例

我正在使用JavaScript Django开发测验应用程序。我坚持把变量发布到Django(DB)中。我不知道如何将Java脚本的score变量与用户登录到应用程序的名称一起发布。我将分享JavaScript的代码

注意:这里我没有使用views.py来计算用户的分数。我使用JavaScript验证和计算分数

我从中得到了三个问题:

  • 如何从JavaScript到Django视图获取变量值?请告诉我怎么走
  • 我们可以使用ajax将变量值发布到Django视图中吗
  • 如果该值显示在html模板中。例如,假设我的分数值存储在JavaScript中的score变量中,并显示在html中。我希望在Django视图中包含该值。那么如何从javascript中获取该值呢? 注意:此处分数未存储在表单中。这是一个单独的变量
HTML:-在此位置将显示分数 我现在有这个代码,但是

  • 如何编写views.py
  • 我需要在JavaScript文件中使用(用户名、quizname、分数)发布到DB中
    刚刚找到关于那个测验的第二个问题。 我从我很久以前做的项目中复制了代码,所以不要因为代码不干净、错误和错误(至少一切正常):)我是用波兰语写的,所以我只翻译了主要信息,而不是问题和答案。我希望你能理解我测试的逻辑,代码可以帮助你

    //问答数组
    变量数据_数组=[
    [“czego służy polecenie Drugipunk w AutoCAD?”、“Umożliwia wskazanieśrodkałuku.”、“Pozwala na narysowaniełuku przechodzącego przez 3 róne punkty.”、“Umożliwia określenie kierunku rysowaniałukułuku.”、“Poprawana 3 róne punkty”、“uku liwia okreélenieékierunku kierunku rysowanałrysowanał,
    [“你在精神分裂症中扮演什么角色?”,“你在精神分裂症患者中扮演什么角色?”,“你在精神分裂症患者中扮演什么角色?”,“你在精神分裂症患者中扮演什么角色?”,“你在精神分裂症患者中扮演什么角色?”,“你在精神分裂症患者中扮演什么角色?”,“你在精神分裂症患者中扮演什么角色?”,“你在精神分裂症患者中扮演什么角色?”,“你在精神分裂症患者中扮演什么角色?”,“你在精神分裂症患者中扮演什么角色?”,“你在精神分裂症患者中扮演什么角色?”,“你在精神分裂症患者中扮演什么角色?”,
    [“Jak stworzyćnowy blok na bazie wybranych elementów?”、“Rysuj–Figure–blok…”、“Opcje–stworzyć–blok…”、“nowy–blok–Utwórz…”、“Rysuj–blok–Utwórz…”4],
    [“czego służy polecenie atrdef?”,“Automatycznie zmienia wartośći atrubutów.,“Ulatwia rysowanie obiekyów.,“Wyświetla okno dialogowe Definiticja atrybutu.,“polecenie Istniej.”,3],
    [“Które Rozzzerzenie określa plik Szablunu AutoCAD?”,“DWT”,“DXF”,“DWG”,“CAD”,3],
    [“Jaki ciąg znakówodpowiada symboluśrednicy okręguø?”,“%%c”,“%%d”,“%%b”,“%%s”,1],
    ];
    var plus=0;
    var时间=0;
    var cur_answer=0;
    var count\u answer=数据\u数组长度;
    函数sec(){
    时间++;
    document.getElementById('time').innerHTML='Passing time:'+time+'sec';
    }
    功能检查(num){
    如果(num==0){
    document.getElementById('option1').style.display='block';
    document.getElementById('option2').style.display='block';
    document.getElementById('option3').style.display='block';
    document.getElementById('option4').style.display='block';
    document.getElementById('question').style.display='block';
    document.getElementById('option1')。innerHTML=data_数组[cur_answer][1];
    document.getElementById('option2')。innerHTML=data_数组[cur_answer][2];
    document.getElementById('option3')。innerHTML=data_数组[cur_answer][3];
    document.getElementById('option4')。innerHTML=data_数组[cur_answer][4];
    document.getElementById('question').innerHTML=data\u数组[cur\u answer][0];
    document.getElementById('start').style.display='none';
    document.getElementById('end').style.display='inline';
    var intervalID=设置间隔(秒,1000);
    }否则{
    if(num==数据数组[cur\u answer][5]){
    plus++;
    document.getElementById('result').innerHTML='您的答案是正确的!';
    }否则{
    document.getElementById('result').innerHTML=“不正确!正确的答案是:”+data\u数组[cur\u answer][data\u数组[cur\u answer][5];
    }
    cur_answer++;
    如果(当前应答<计数应答){
    document.getElementById('option1')。innerHTML=data_数组[cur_answer][1];
    document.getElementById('option2')。innerHTML=data_数组[cur_answer][2];
    document.getElementById('option3')。innerHTML=data_数组[cur_answer][3];
    document.getElementById('option4')。innerHTML=data_数组[cur_answer][4];
    document.getElementById('question').innerHTML=data\u数组[cur\u answer][0];
    }否则{
    document.getElementById('time').id='stop';
    document.getElementById('option1').style.display='none';
    document.getElementById('option2').style.display='none';
    document.getElementById('option3').style.display='none';
    document.getElementById('option4').style.display='none';
    document.getElementById('question').style.display='none';
    document.getElementById('end').style.display='inline';
    变量百分比=数学四舍五入(加上/计数×100);
    var res=‘你是年轻人!’;
    如果(百分比>70)res='你是中等水平!';
    如果(百分比==100)res='你是资深的!祝贺你!';
    document.getElementById('result').innerHTML='Correct answers:'+plus+'在'+count_answer+'('+percent+'%)中,
    '+res; } } }
    正文{
    背景:#fff url(img/bg1.jpg);
    颜色:#fff;
    字体系列:verdana;
    颜色:#444;
    }
    p{
    字号:38px;
    字体大小:粗体;
    垫顶:2件;
    }
    #选项1、选项2、选项3、选项4{
    显示:无;
    边缘底部:10px;
    }
    .test1{
    背景色:#6cb670;
    边界:1px;
    颜色:白色;
    填充:8px 12px;
    文本对齐:居中;
    文字装饰:无;
    字体大小:20px;
    右边距:20px;
    光标:指针;
    }
    .test2{
    背景色:#088A68;
    边界:1px;
    颜色:白色;
    
    <div id="result" class="result" style="display:none;"></div>
    
      var resultCont = document.getElementById('result');
    if (currentQuestion == totQuestions) {
          resultCont.style.display = '';
          console.log(score);
          if(score == 0 || score < 40)
          {
              resultCont.innerHTML = 'Your Score: ' + score + '/80'+ 'Fail';
          }
          else {
            resultCont.innerHTML = 'Your Score: ' + score + '/80' + 'Pass';
        }
    
          return;
        }
    
    class Results(models.Model):
        username = models.ForeignKey(User,on_delete= models.CASCADE)
        quizname = models.ForeignKey(Quiz, on_delete=models.CASCADE)
        score = models.IntegerField()