예제 #1
0
def Question():
    form = QuestionForm()

    conn = psycopg2.connect(database=ci.dbname,
                            user=ci.dbuser,
                            password=ci.dbpassword,
                            host=ci.dbhost,
                            port=ci.dbport)
    print("connected")
    cur = conn.cursor()
    cur1 = conn.cursor()
    #cur2 = conn.cursor()

    print("connected again")
    cur.execute(
        "select qnid, question, choicea, choiceb, choicec, choiced from questiondummy"
    )
    print("fetch")
    #question=form.question.data
    question = cur.fetchall()  #data from database
    form.question = question
    print("try to insert value")

    cur1.execute("select qnid,correctanswer from questiondummy")
    correct_answers = cur1.fetchall()
    print(correct_answers)
    new_answer = dict(correct_answers)
    print(new_answer)
    '''cur2.execute("select quizId from questiondummy")
      QuizId=cur2.fetchall()
      print(QuizId)'''
    '''form.question=[["Q1","Q1opt1","Q1opt2"],["Q2","Q2opt1","Q2opt2"]]
      print(form.question[0][0])
      print(form.question[1][0])
      #for qname in question:
      print(request.form.get(form.question[0][0]))
      res2 = request.form.get(form.question[1][0])
      print(res2)
      res=request.form
      print(res)
      #print=request.form.get()
      #print(questionSet[0][0])
      print("fetched")'''

    if request.method == 'POST':
        username = form.username.data
        print(form.username.data)
        #quizId=form.quizId.data
        quizId = 1
        score = 0
        print(question)
        print(form)
        for item in form.question:
            print(item)
            print(item[0])
            user_answer = request.form.get(str(item[0]))
            print(user_answer)
            print(new_answer.get(item[0]))
            correctAnswer = new_answer.get(item[0])
            Question_insertqry = "INSERT INTO quiz_response ( username, quizId, question, user_answer) VALUES (%s,%s,%s,%s)"
            Question_valuestoInsert = (username, quizId, item[0], user_answer)
            cur.execute(Question_insertqry, Question_valuestoInsert)
            #print("Inserted")
            conn.commit()
            if correctAnswer == user_answer:
                print("initial score")
                score = score + 1
            print("total score %s" % (score))

            count = cur.rowcount
            if count > 0:
                flash('Quiz result submitted', 'success')

        Score_insertqry = "INSERT INTO leaderboard (username, quizId, score) VALUES (%s,%s,%s)"
        Score_valuestoInsert = (username, quizId, score)
        cur.execute(Score_insertqry, Score_valuestoInsert)
        conn.commit()

        print("scores added")

        return redirect(url_for('LeaderBoard'))

    return render_template('loadQuestion.html', questionDisplay=form)