【问题标题】:Insert a Javascript variable into a flask app and then insert it into a Mysql database将 Javascript 变量插入烧瓶应用程序,然后将其插入 Mysql 数据库
【发布时间】:2017-07-31 18:05:24
【问题描述】:

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

【问题讨论】:

  • 查找 AJAX + Flask。

标签: javascript python mysql flask jinja2


【解决方案1】:

有多种方法可以做到这一点,具体取决于您对在客户端中运行多少“业务逻辑”感到满意。

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

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

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

在我看来,更好的方法是只向用户提出问题,并在服务器上处理正确或不正确的决定,以及分数计算。

一个可能的实现可能有:

GET /quiz - 提出问题

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

如中所示,GET 请求将呈现一个包含问题和答案的表单,该表单的提交操作将 POST 到相同(或不同,如果您愿意)的 URL,您可以在其中检索表单数据 (Sending data from HTML form to a Python script in Flask )。

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

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多