molQuiz / outerElectronFl.py
OzoneAsai's picture
Update outerElectronFl.py
9deadaf verified
raw
history blame
4.29 kB
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)