如何使用 Flask/Python 3 处理 URL 中缺少的参数 [重复]

Posted

技术标签:

【中文标题】如何使用 Flask/Python 3 处理 URL 中缺少的参数 [重复]【英文标题】:How to handle missing parameters in URL with Flask/Python 3 [duplicate] 【发布时间】:2016-08-27 12:07:23 【问题描述】:

目前,我的网站上有两个下拉框,其值在提交表单后会转换为两个 URL 参数“myState”和“myShelter”。例如:

https://www.atweather.org/forecast?myState=CT&myShelter=181

我现在添加了第三个框,并且将有第三个对应的参数称为“myTrail”。我的问题是:我怎样才能做到,如果有人直接提交一个只有两个参数的 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...

提前感谢您的任何见解!

【问题讨论】:

【参考方案1】:

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')

在此之后,只需处理值以返回您想要的方式。

【讨论】:

以上是关于如何使用 Flask/Python 3 处理 URL 中缺少的参数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

flask处理数据,页面实时刷新展示

Bad Gateway 502 - 在 centos 7 上使用 gunicorn nginx 部署 Flask (python 3.5.2)

UR机械臂CB3 网络课程

Flask:Python - 如何检查请求的IP地址[重复]

ROS - 使用UR机械臂最新的 ur_robot_driver

Flask-msearch python ,在多对多表上添加 msearch