前提
いつもお世話になっております。
PythonのFLASK並びにFLASK-WTFormsを用いて、webサイトからアンケートの結果をデータベースに納め、集計結果を表示しようと考えております。
ルーティングはページの名前で分岐し、GETでフォームの表示、POSTを受けたらフォーム部分には結果を表示させようとしています。
ですが、HTMLから投げたPOSTをルーティングがPOSTと認識しないような挙動を示します。エラーメッセージは出ません。
作成したのは以下のコード(抜粋)です。
HTML
<form action="{{url_name}}",method="POST"> {{ form.csrf_token }} {{ form.hyouka.label }} <br> {% for koumoku in form.hyouka %} <label> {{ koumoku }} <span> {{ koumoku.label.text }} </span></label><br> {% endfor %} {{ form.submit }} </form>
python(app)
@yk_app.route('/<url_name>',methods = ["GET" , "POST"])def go_url(url_name): form = HyoukaForm(request.form) if (request.method == "POST"): print("POSTに入りました") …(以下、処理)
Python(フォーム)
class HyoukaForm(FlaskForm): hyouka = RadioField('通信簿', [DataRequired(message='この記事の評価を選択して下さい')], choices=[('5' , 'すごい'), ('4', 'まあまあ'),('3', 'ふつう'),('2', 'ぼちぼち'),('1', 'ダメダメ')]) submit = SubmitField('評価')
上記のコードで、
① Python(フォーム)で定義されたフォームがHTMLに表示される(うまくいきました)
② ①から投げられたPOSTの内容をPython(app)がキャッチする(ここがうまくいきません)
③ appがPOSTを受け取った時の処理を行う(未検証です)
といった流れを実現できるものと考えましたが…。
上記コードのどの部分に修正を加えたら良いでしょうか?
以上が質問です。何卒宜しくお願い申し上げます。
0 コメント