今現在、Flaskでクイズアプリを作成しています。その中で、問題作成関数generateと問題出題関数questionsとの間で変数の受け渡しを行いたいです。今現在はURLの中に変数を代入することで変数を引き渡しています。ただ、それだとユーザーに情報が漏洩してしまうため、他の方法がないか調べています。そうすると、Flaskではsessionで情報を一時的に保存すると記載してありました。その方法でも良いかとは思ったんですが、sessionは大容量データの扱いに適さないとのことでした。そこで、他にルート間で変数を引き渡す方法がないか伺いたいです。
現在のコードは以下のようになります。
python
1#問題作成 2@app.route("/generate", methods=["GET"]) 3def generate(): 4 #外部関数で生成された問題を受け取る。 5 question,answer=problem_generate.generate() 6 return redirect(f"/questions/1/{question}/{answer}") 7 8#問題出題画面 9@app.route("/questions/<int:questions_id>/<string:question>/<string:answer>", methods=["GET","POST"]) 10def questions(questions_id,question,answer): 11 if request.method=="POST": 12 #解答を受け取る。 13 get_answer=request.form.get("answer") 14 #回答が正しいか判定する関数を実行する。 15 16 #回答が正解の場合。 17 if get_answer==answer: 18 judgme="正解" 19 return render_template("result.html",judgme=judgme) 20 #回答が不正解の場合。 21 else: 22 judge="不正解" 23 return render_template("result.html",judgme=judgme) 24 else: 25 return render_template("question.html",question=question,answer=answer) 26
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/02 06:50