如何使用 Flask/Python 处理 URL 中丢失的参数 3
How to handle missing parameters in URL with Flask/Python 3
目前,我的网站上有两个下拉框,其值在提交表单时转换为两个 URL 参数 "myState" 和 "myShelter"。例如:
https://www.atweather.org/forecast?myState=CT&myShelter=181
我现在添加第三个框,将有第三个相应的参数称为 "myTrail"。我的问题是:如果有人直接提交仅包含两个参数的 URL,我该如何做到这一点,浏览器不会因错误请求而出错?我希望用户看到该页面,好像 "myState" 和 "myShelter" 被选中,但 "myTrail" 只是未被选中。
我试着查看 here and 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...
提前感谢您的任何见解!
如果参数存在,request.args.get()
方法允许获取参数。
# return None if the argument doesn't exist
trail = request.args.get('myTrail')
# return 'x' if the argument doesn't exist
trail = request.args.get('myTrail', 'x')
在此之后,只需按照您想要的方式将值处理为 return。
目前,我的网站上有两个下拉框,其值在提交表单时转换为两个 URL 参数 "myState" 和 "myShelter"。例如:
https://www.atweather.org/forecast?myState=CT&myShelter=181
我现在添加第三个框,将有第三个相应的参数称为 "myTrail"。我的问题是:如果有人直接提交仅包含两个参数的 URL,我该如何做到这一点,浏览器不会因错误请求而出错?我希望用户看到该页面,好像 "myState" 和 "myShelter" 被选中,但 "myTrail" 只是未被选中。
我试着查看 here and 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...
提前感谢您的任何见解!
如果参数存在,request.args.get()
方法允许获取参数。
# return None if the argument doesn't exist
trail = request.args.get('myTrail')
# return 'x' if the argument doesn't exist
trail = request.args.get('myTrail', 'x')
在此之后,只需按照您想要的方式将值处理为 return。