Spaces:
Sleeping
Sleeping
File size: 4,162 Bytes
8b41da9 d2540d6 8b41da9 d2540d6 8651983 d2540d6 8651983 d2540d6 8651983 d2540d6 8651983 d2540d6 8651983 d2540d6 8651983 d2540d6 8651983 d2540d6 8651983 8b41da9 d2540d6 8b41da9 8651983 8b41da9 8651983 8b41da9 d2540d6 8651983 8b41da9 8651983 8b41da9 d2540d6 6066cfe b18cdce d2540d6 6066cfe b18cdce d2540d6 6066cfe d2540d6 6066cfe b18cdce 6066cfe 17db4dd 6066cfe d2540d6 8651983 b18cdce |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
from flask import Flask, render_template, request, session, redirect, url_for
import json
import random
app = Flask(__name__)
app.secret_key = "your_secret_key_here"
# JSONファイルから元素と原子番号の対応関係を読み込む
with open("element_atomic_numbers.json", "r", encoding="utf-8") as f:
element_atomic_numbers = json.load(f)
# JSONファイルから首都のデータを読み込む
with open("capitals.json", "r", encoding="utf-8") as f:
capitals = json.load(f)
# element_outer_electrons
with open("element_outer_electrons.json", "r", encoding="utf-8") as f:
element_outer_electrons = json.load(f)
# ランダムな国名とその首都を取得する関数
def get_random_country():
country = random.choice(list(capitals.keys()))
return country, capitals[country]
# 初期の問題を設定する
current_country, current_capital = get_random_country()
@app.route('/')
def index():
return render_template('quiz_index.html')
@app.route('/quiz_capital', methods=['GET', 'POST'])
def quiz_capital():
global current_country, current_capital
result = None
if request.method == 'POST':
user_input = request.form['user_input']
if user_input == current_capital:
result = '正解です!'
else:
result = '不正解です。正解は{}です。'.format(current_capital)
return render_template('quiz_capital.html', element=current_country, result=result)
@app.route('/next_capital', methods=['POST'])
def next_question_capital():
global current_country, current_capital
current_country, current_capital = get_random_country()
return redirect(url_for('quiz_capital'))
@app.route('/quiz_element', methods=['GET', 'POST'])
def quiz_element():
# セッションに元素がない場合はランダムに選択
if "element" not in session:
session["element"] = random.choice(list(element_outer_electrons.keys()))
if request.method == "POST":
user_input = int(request.form["user_input"])
correct_answer = element_outer_electrons[session["element"]]
if user_input == correct_answer:
result = "正解です!"
else:
result = f"残念!正解は {correct_answer} でした。"
return render_template("quiz_element.html", element=session["element"], result=result)
return render_template("quiz_element.html", element=session["element"], result=None)
@app.route("/next_element", methods=["POST"])
def next_question_element():
# 次の問題をセッションに設定し、リダイレクト
session["element"] = random.choice(list(element_outer_electrons.keys()))
return redirect(url_for("quiz_element"))
@app.route('/quiz_element2num', methods=['GET', 'POST'])
def quiz_element2num():
# セッションに元素がない場合はランダムに選択
if "element" not in session:
session["element"] = random.choice(list(element_atomic_numbers.keys()))
if request.method == "POST":
user_input = request.form["user_input"]
correct_answer = [key for key, value in element_atomic_numbers.items() if value == session["element"]]
if correct_answer:
correct_answer = correct_answer[0]
else:
# Handle the case where no correct answer is found
correct_answer = "No matching element found"
if user_input == correct_answer:
result = "正解です!"
else:
result = f"残念!正解は {correct_answer} でした。"
return render_template("quiz_element2num.html", element=session["element"], result=result)
return render_template("quiz_element2num.html", element=element_atomic_numbers[session["element"]], result=None)
@app.route("/next_element2num", methods=["POST"])
def next_question_element2num():
# 次の問題をセッションに設定し、リダイレクト
session["element"] = random.choice(list(element_atomic_numbers.values()))[1]
return redirect(url_for("quiz_element2num"))
if __name__ == '__main__':
app.run(debug=True, port=7860, host="0.0.0.0")
|