2017-07-31 61 views
0

在Javascript部分,您會看到計算得分的方式以及它如何在網站上顯示,但我希望得到的分數插入我的燒瓶應用程序所以我可以將分數插入我的MySql數據庫。對不起,我的英語不好。插入一個Javascript變量到燒瓶應用程序中,然後將它插入到Mysql數據庫中

的Javascript:

// Computes score and returns a paragraph element to be displayed 
     function displayScore() { 
      var score = $('<p class="quizvraag">', {id: 'question'}); 

      var numCorrect = 0; 
      for (var i = 0; i < selections.length; i++) { 
       if (selections[i] === questions[i].correctAnswer) { 
        numCorrect++; 
       } 
      } 

      score.append('You got ' + numCorrect + ' questions out of ' + 
        questions.length + ' right!!!'); 


      return score; 
     }` 

瓶:

@app.route('/quiz') 
def quiz(): 
startquiz() 

DbLayer = DbClass() 
vragen = DbLayer.getQuizVraag() 
list_vraag = [vragen] 
print(vragen) 
return render_template('quiztestjs.html', vraag=vragen, list_vraag=list_vraag) 

MySQL查詢:

def setDataToDatabase(self, Score1): 
    # Query met parameters 
    sqlQuery = "INSERT INTO tbl_score (Score1) VALUES ('{param1}')" 
    sqlCommand = sqlQuery.format(param1=Score1) 

    self.__cursor.execute(sqlCommand) 
    self.__connection.commit() 
    self.__cursor.close() 
+0

查找AJAX +燒瓶。 – cwallenpoole

回答

0

有多種方法可以做到這一點,取決於有多少你的 「商業邏輯」 的在您熟悉的客戶端中運行。

您可以使用XMLHttpRequest(Send POST data using XMLHttpRequest)通過JavaScript將計算得分返回,並將其保存到您的數據庫。

但是,請考慮其含義,尤其是客戶完全負責決定測驗結果和分數的事實。

玩家可能只是在您的測驗中作弊,因爲他們擁有所有數據,或者他們可能僞造請求併發送他們想要的任何分數。

在我看來,一個更好的方法就是隻向用戶提供問題,並決定是否在服務器上處理正確或不正確的問題,以及計算分數。

一個可能的實現可以有:

GET /quiz - 現在的問題

POST /quiz - 提交答案,呈現結果給用戶,寫成績

如,GET請求將呈現與形式問題和答案,並且該表單的提交操作將張貼到您檢索表單數據(Sending data from HTML form to a Python script in Flask)的相同(或不同的,如果您願意的話)URL。

所有這一切的重要一點是,信息是什麼答案是正確的,在提交併獲得結果之前,不會與客戶共享。

相關問題