2017-07-31 6 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経由で返信し、DBに保存するだけで済みます。

しかし、特にクライアントがクイズの結果とスコアの決定に全面的に責任を負うということを考慮してください。

プレイヤーはすべてのデータを持っているので、あなたのクイズを不正行為したり、要求を偽造したり、必要なスコアを送信したりするだけです。

私の意見では、ユーザーに提示される質問だけでなく、サーバー上で正しいかどうかを判断し、スコア計算を行うこともできます。

可能な実装を持つことができる:

GET /quiz - 存在質問

POST /quiz - 解答を提出し、ユーザーにその結果をレンダリングする、のように

スコアの書き込みを、GETリクエストをして、フォームをレンダリングしますそのフォームの送信アクションは、フォームデータ(Sending data from HTML form to a Python script in Flask)を取得する同じ(または異なる場合がある)URLにPOSTします。

どのような回答が正しいものなのかという点は、提出して結果を得る前に、クライアントと共有されていません。

関連する問題