from flask import Flask, render_template, request, redirect, url_for import random app = Flask(__name__) # 首都のデータを辞書に格納する capitals = { 'MgCl2': '塩化マグネシウム', 'MgO': '酸化マグネシウム', 'MgF2': 'フッ化マグネシウム', 'MgS': '硫化マグネシウム', 'MgOH2': '水酸化マグネシウム', 'MgI2': 'ヨウ化マグネシウム', 'CaCl2': '塩化カルシウム', 'CaO': '酸化カルシウム', 'CaF2': 'フッ化カルシウム', 'CaS': '硫化カルシウム', 'CaOH2': '水酸化カルシウム', 'CaI2': 'ヨウ化カルシウム', 'ZnCl2': '塩化亜鉛', 'ZnO': '酸化亜鉛', 'ZnF2': 'フッ化亜鉛', 'ZnS': '硫化亜鉛', 'ZnOH2': '水酸化亜鉛', 'ZnI2': 'ヨウ化亜鉛', 'NaCl': '塩化ナトリウム', 'Na2O': '酸化ナトリウム', 'NaF': 'フッ化ナトリウム', 'Na2S': '硫化ナトリウム', 'NaOH': '水酸化ナトリウム', 'NaI': 'ヨウ化ナトリウム', 'KCl': '塩化カリウム', 'K2O': '酸化カリウム', 'KF': 'フッ化カリウム', 'K2S': '硫化カリウム', 'KOH': '水酸化カリウム', 'KI': 'ヨウ化カリウム', 'HCl': '塩酸', 'H2O': '水', 'HF': 'フッ化水素', 'H2S': '硫化水素', 'HOH': '水', # HOHも水のもう一つの表記 'HI': 'ヨウ化水素', 'CuCl': '塩化銅(I)', 'Cu2O': '酸化銅(I)', 'CuF': 'フッ化銅(I)', 'Cu2S': '硫化銅(I)', 'CuOH': '水酸化銅(I)', 'CuI': 'ヨウ化銅(I)', 'CuCl2': '塩化銅(II)', 'CuO': '酸化銅(II)', 'CuF2': 'フッ化銅(II)', 'CuS': '硫化銅(II)', 'CuOH2': '水酸化銅(II)', 'CuI2': 'ヨウ化銅(II)', 'AgCl': '塩化銀', 'Ag2O': '酸化銀', 'AgF': 'フッ化銀', 'Ag2S': '硫化銀', 'AgOH': '水酸化銀', 'AgI': 'ヨウ化銀', 'BaCl2': '塩化バリウム', 'BaO': '酸化バリウム', 'BaF2': 'フッ化バリウム', 'BaS': '硫化バリウム', 'BaOH2': '水酸化バリウム', 'BaI2': 'ヨウ化バリウム', 'FeCl2': '塩化鉄(II)', 'FeO': '酸化鉄(II)', 'FeF2': 'フッ化鉄(II)', 'FeS': '硫化鉄(II)', 'FeOH2': '水酸化鉄(II)', 'FeI2': 'ヨウ化鉄(II)', 'MnCl2': '塩化マンガン(II)', 'MnO': '酸化マンガン(II)', 'MnF2': 'フッ化マンガン(II)', 'MnS': '硫化マンガン(II)', 'MnOH2': '水酸化マンガン(II)', 'MnI2': 'ヨウ化マンガン(II)', 'MnCl': '塩化マンガン(I)', 'Mn2O': '酸化マンガン(I)', 'MnF': 'フッ化マンガン(I)', 'Mn2S': '硫化マンガン(I)', 'MnOH': '水酸化マンガン(I)', 'MnI': 'ヨウ化マンガン(I)', 'PbCl2': '塩化鉛(II)', 'PbO': '酸化鉛(II)', 'PbF2': 'フッ化鉛(II)', 'PbS': '硫化鉛(II)', 'PbOH2': '水酸化鉛(II)', 'PbI2': 'ヨウ化鉛(II)', 'AlCl3': '塩化アルミニウム', 'Al2O3': '酸化アルミニウム', 'AlF3': 'フッ化アルミニウム', 'Al2S3': '硫化アルミニウム', 'AlOH3': '水酸化アルミニウム', 'AlI3': 'ヨウ化アルミニウム', } # ランダムな国名とその首都を取得する関数 def get_random_country(): country = random.choice(list(capitals.keys())) return capitals[country],country # 初期の問題を設定する current_化合物, current_化合物名 = get_random_country() @app.route('/', methods=['GET', 'POST']) def quiz(): global current_化合物, current_化合物名 result = None if request.method == 'POST': user_input = request.form['user_input'] if user_input == current_化合物名: result = '正解です!' else: result = '不正解です。正解は{}です。'.format(current_化合物名) return render_template('quiz.html', element=current_化合物, result=result) @app.route('/next', methods=['POST']) def next_question(): global current_化合物, current_化合物名 current_化合物, current_化合物名 = get_random_country() return redirect(url_for('quiz')) if __name__ == '__main__': app.run(debug=True, port=5505)