現在、私のウェブサイトには2つのドロップダウンボックスがあり、フォーム提出時に値が2つのURLパラメータ "myState"と "myShelter"に変換されます。たとえば:Flask/Python 3のURLで欠落しているパラメータを処理する方法
https://www.atweather.org/forecast?myState=CT&myShelter=181
私は今、3番目のボックスを追加していると「myTrail」と呼ばれる第3の対応するパラメータが存在します。私の質問はこれです:誰かが直接2つのパラメータだけのURLを提出すると、ブラウザは間違った要求でエラーにならないようにするにはどうしたらいいですか? 「myState」と「myShelter」が選択されたようにユーザーにページを表示させたいが、「myTrail」は選択されていないままにしておきたい。
私はhereとhereと考えましたが、これは私が求めているのと全く同じ状況ではないと思います。私はPython 3の下でFlaskを使用していますが、現在このルートを以下のように処理しています。
@app.route('/forecast', methods = ['GET'])
def forecast(loc_state = None, loc_id = None):
"""
Handles rendering of page after a location has been selected
"""
loc_state = request.args['myState']
loc_id = int(request.args['myShelter'])
...and a bunch of other logic for rendering the page...
ありがとうございました!
私の質問が上記の質問の重複であるとは思わない。私は 'dict'メソッド' get'を利用することが私にとって有用かもしれませんが、私の質問の文脈はそのスレッドには全く存在しません。 –
'request.args'はdictサブクラスです。他のdictと同じように、エラーを発生させずに値を取得しようとする場合は、 'get'を使用します。あなたがフラスコを使用しているという事実は、実際には関係がありません。以下の答えは他の答えと同じです。 – davidism
これらのパラメータをview関数に追加することは重要ではないことに注意してください。パラメータは、取得されたurl値から満たされ、クエリargではなく埋められます。 – davidism