quiz-the-word/QuizTheWord/app.py

76 lines
2.2 KiB
Python
Raw Normal View History

2021-03-07 17:13:11 -08:00
import os
from flask import request, render_template, jsonify, Flask
2021-03-22 20:53:50 -07:00
from flask_security import Security, SQLAlchemySessionUserDatastore
from QuizTheWord import database
from QuizTheWord.admin import admin
2021-03-06 14:29:44 -08:00
app = Flask(__name__)
2021-03-07 17:13:11 -08:00
environment_configuration = os.environ['CONFIGURATION_SETUP']
app.config.from_object(environment_configuration)
user_datastore = SQLAlchemySessionUserDatastore(database.Session, database.User, database.Role)
security = Security(app, user_datastore)
app.register_blueprint(admin.Admin)
2021-03-06 14:29:44 -08:00
@app.route("/")
def index():
2021-03-18 20:08:19 -07:00
return multiple_choice_category()
@app.route("/category/hidden_answer")
def hidden_answer_category():
easy = database.get_random_hidden_answer(1)
medium = database.get_random_hidden_answer(2)
hard = database.get_random_hidden_answer(3)
2021-03-06 14:29:44 -08:00
return render_template(
"hidden_answer.html",
2021-03-18 20:08:19 -07:00
title="Hidden Answer",
2021-03-06 14:29:44 -08:00
easy=easy,
medium=medium,
hard=hard,
)
2021-03-18 20:08:19 -07:00
@app.route("/category/multiple_choice")
def multiple_choice_category():
easy = database.get_random_multiple_choice(1)
2021-03-18 20:08:19 -07:00
easy.randomize_answer_list()
2021-03-22 20:53:50 -07:00
# medium = database.get_random_multiple_choice(2)
# medium.randomize_answer_list()
# hard = database.get_random_multiple_choice(3)
# hard.randomize_answer_list()
2021-03-18 20:08:19 -07:00
return render_template(
"multiple_choice.html",
title="Multiple Choice",
easy=easy,
# medium=medium,
# hard=hard,
)
@app.route("/category/multiple_choice/check_answer", methods=["GET"])
def check_answer():
question_id = request.args.get("question_id", type=int)
answer = request.args.get("answer", type=str)
if question_id is not None and answer is not None:
return jsonify(database.check_answer(question_id, answer))
@app.errorhandler(404)
def error_404(e):
print(e)
return render_template("error.html", error_msg="The requested page can not be found.", error_code=404), 404
@app.errorhandler(500)
def error_404(e):
print(e)
msg = "There was an error with the server."
if app.config["DEBUG"]:
msg = e
return render_template("error.html", error_msg=msg, error_code=500), 500
2021-03-06 14:29:44 -08:00
if __name__ == "__main__":
app.run()