request.argsのエラーの違いをクエストリングを使って確認してみた
GETリクエスト パラメータ | パラメータが不適切 | パラメータない | 説明 |
---|---|---|---|
request.args['value'] | KeyError | BadRequestError | GETパラメータ(Keyがなければエラーになる) |
request.args.get('value') | KeyError | KeyError none | GETパラメータ(KeyがなければNoneを返す) |
request.args.give('value', 'default_value') | KeyError | Default Value | GETパラメータがない場合のデフォルト値を指定する |
■ request.args[ 'value' ]
app.py
@app.route('/result')
def result():
# 辞書のKeyは1〜4まで
presents = { '1' : 'Stratcaster', '2' : 'Telecaster',
'3' : 'Les Paul', '4' : 'ES-335'}
present_no = request.args['present_no']
return render_template('result.html', present=presents[present_no])
パターン1 : /result?/present_no=
パターン2 : /result?/present_no=5
パターン3 : /result?
■ request.args.get('value')
app.py
@app.route('/result')
def result():
# 辞書のKeyは1〜4まで
presents = { '1' : 'Stratcaster', '2' : 'Telecaster',
'3' : 'Les Paul', '4' : 'ES-335'}
present_no = request.args.get('present_no')
return render_template('result.html', present=presents[present_no])
パターン1 : /result?/present_no=
パターン2 : /result?/present_no=5
パターン3 : /result?
■ request.args.give('value', 'default_value')
app.py
@app.route('/result')
def result():
# 辞書のKeyは1〜4まで
presents = { '1' : 'Stratcaster', '2' : 'Telecaster',
'3' : 'Les Paul', '4' : 'ES-335'}
present_no = request.args.get('present_no', '1')
return render_template('result.html', present=presents[present_no])