将Javascript变量插入到烧瓶应用程序中,然后将其插入到Mysql数据库中

时间:2017-07-31 18:05:25

标签: javascript python mysql flask jinja2

在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()

1 个答案:

答案 0 :(得分:0)

有多种方法可以执行此操作,具体取决于您熟悉的客户端中运行的“业务逻辑”的数量。

您可以使用XMLHttpRequest(Send POST data using XMLHttpRequest)通过JavaScript发回计算得分,并将其保存到您的数据库中。

但是,请考虑其影响,尤其是客户对决定测验结果和分数负全部责任这一事实。

玩家可能会在你的测验中作弊,因为他们拥有所有数据,或者他们可能伪造请求并只发送他们想要的任何分数。

在我看来,更好的方法是将问题提交给用户,以及决定服务器上是否正确或不正确,以及分数计算。

可能的实施可能有:

GET /quiz - 提出问题

POST /quiz - 提交答案,将结果呈现给用户,写出分数

同样,GET请求将呈现带有问题和答案的表单,并且该表单的提交操作将POST到相同(或不同,如果您愿意)URL,您可以在其中检索表单数据({{3 }})。

在提交并获得结果之前,客户不会与客户分享所有答案正确的信息。