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"没有被选中。
我试着到处看看,但我不认为这和我问的情况完全一样。我在python 3下使用flask,目前处理这个路径的方式如下:
1 2 3 4 5 6 7 8 9 10 11 | @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... |
提前感谢您的洞察力!
1 2 3 4 5 | # 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') |
在此之后,只需处理该值以返回所需的方式。