Вопрос Flask Framework – как отображать правильные ответы в викторинеPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Вопрос Flask Framework – как отображать правильные ответы в викторине

Сообщение Гость »


Я только учусь использовать Flask:

У меня есть этот код для простой игры в угадайку (викторины), и в HTML-коде обзора, где пользователь видит свой ответ и правильный, его ответ (написанный «как ваш ответ» не отображается, а только правильный ответ) .

Вот мой файл app.py с маршрутами. Маршрут с проблемой — это тот, который говорит @app.route('/ответ', методы=['POST']). Пожалуйста, помогите, если можете!

из фляги import Flask, render_template, request, redirect, url_for приложение = Колба(__name__) # Определите простые вопросы и ответы вопросы = [ { 'вопрос': 'Какая столица Франции?', 'варианты': ['Берлин', 'Мадрид', 'Париж', 'Рим'], 'correct_answer': 'Париж', 'сообщение': '', }, { 'вопрос': 'Какая планета известна как Красная планета?', 'варианты': ['Марс', 'Венера', 'Юпитер', 'Сатурн'], 'correct_answer': 'Марс', 'сообщение': '', }, { 'вопрос': 'Какое млекопитающее самое большое в мире?', 'варианты': ['Слон', 'Жираф', 'Китовая акула', 'Кенгуру'], 'correct_answer': 'Китовая акула', 'сообщение': '', }, ] # Инициализируйте переменные, чтобы отслеживать текущий вопрос и оценку пользователя. текущий_вопрос = 0 оценка = 0 защита reset_messages(): на вопрос в вопросах: вопрос['сообщение'] = '' @app.route('/') индекс защиты(): сброс_сообщений() если текущий_вопрос < len(вопросы): return render_template('question.html', вопрос=questions[current_question]) еще: return render_template('result.html', счет=оценка, итог=лен(вопросы), вопросы=вопросы) @app.route('/ответ', методы=['POST']) Защитный ответ(): глобальный текущий_вопрос, оценка user_answer = request.form.get('ответ') правильный_ответ = вопросы[текущий_вопрос]['правильный_ответ'] если user_ответ == правильный_ответ: оценка += 1 еще: вопросы[current_question]['message'] = user_answer # Установите здесь ответ пользователя текущий_вопрос += 1 если текущий_вопрос < len(вопросы): вернуть перенаправление (url_for ('index')) еще: # Убедитесь, что оценка не превышает общее количество вопросов Оценка = мин(оценка, длина(вопросы)) # Сброс текущего_вопроса на 0 для проверки текущий_вопрос = 0 return redirect(url_for('обзор', оценка=оценка, итог=len(вопросы))) @app.route('/play-again', методы=['POST']) защита play_again(): глобальный текущий_вопрос, оценка текущий_вопрос = 0 оценка = 0 вернуть перенаправление (url_for ('index')) @app.route('/обзор') обзор проверки(): return render_template('review.html', вопросы=вопросы, оценка=оценка, итог=len(вопросы)) @app.route('/quit', методы=['POST']) защита quit_game(): return «Спасибо за игру!» если __name__ == '__main__': app.run(отладка=Истина) ниже обзор, html

Просмотреть ответы Просмотреть ответы Ваша оценка: {{ балл }} из {{ всего }}
{% за вопрос в вопросах %} {{ вопрос['вопрос'] }}
{% if вопрос['сообщение'] == 'Верно!' %} Правильный ответ: {{ вопрос['correct_answer'] }} (Правильно) {% еще %} Ваш ответ: {{ вопрос['сообщение'] }}
Правильный ответ: {{ вопрос['correct_answer'] }} {% endif %}
{% конец для %} Вернуться на главную страницу
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»