【问题标题】:How to handle unexpected url parameter in Flask如何在 Flask 中处理意外的 url 参数
【发布时间】:2020-07-16 20:09:23
【问题描述】:

我是 Flask 和 Web 开发的新手。我有一个关于 url 参数的问题。

例如,我有一个端点“/categories”,它不需要任何 url 参数。我尝试在 curl 中添加一些随机 url 参数,例如

curl localhost:5000/categories?page=1

它正常工作,我想知道这是否是预期的行为,还是应该用一些错误或警告来处理这个问题?

另外,如果我期望一个名为“id”的 url 参数并且请求不包含 url 参数或错误的 url 参数。这种情况应该怎么处理?

在上述情况下我应该中止什么状态码?

感谢您的帮助。

【问题讨论】:

标签: python web url flask backend


【解决方案1】:

您需要检查您的查询字符串(URL 中 ? 之后的值)以查看参数是否存在以及该值是否有效。有一些库可以使用装饰器来执行此操作,但您也可以手动执行此操作。您需要在模块顶部导入请求对象。

from flask import request

@app.route('/categories')
def categories():
    id = request.args.get('id') # will return None if key does not exist
    if id:
        # id exists, validate value here
        pass
    else:
        # no id, return error or something
        pass

相关问题: How do you get a query string on Flask?

【讨论】:

  • 我想补充一点,您可以将更多参数传递给 request.args.get 作为默认值和类型 Werkzeug Doc: like get(key, default=None, type=None) ,
猜你喜欢
  • 1970-01-01
  • 2016-08-27
  • 2013-08-31
  • 2017-10-05
  • 2014-01-04
  • 2013-10-31
  • 2015-09-15
  • 2020-02-26
  • 2012-12-11
相关资源
最近更新 更多