【问题标题】:flask restapi get query param not working for me烧瓶休息api获取查询参数对我不起作用
【发布时间】:2021-04-26 17:35:58
【问题描述】:

我有下面的python 代码使用flaskrequest

from flask import request

@app.route('/v1/api/check_current_weather_by_city?city=Tel-aviv')
def check_current_weather_by_city():
    city = request.args.get('city')

但是 city 没有得到 Tel-aviv 的期望值,但是抛出异常:

_lookup_req_object
        raise RuntimeError(_request_ctx_err_msg)
RuntimeError: Working outside of request context.

我正在使用这项服务: https://openweathermap.org/current

【问题讨论】:

  • @app.route('/v1/api/check_current_weather_by_city')
  • 从规则定义中删除 ?city=Tel-aviv 部分。那是请求可能给出的。你怎么称呼它?
  • 根据服务的文档,调用是:api.openweathermap.org/data/2.5/weather?q={city name}&appid={API key}

标签: python flask get


【解决方案1】:

您的手中似乎有各种各样的问题。首先,您的路由不应包含?city=Tel-aviv,而应仅包含 URL 的“静态”部分。

替换这一行:

@app.route('/v1/api/check_current_weather_by_city?city=Tel-aviv')

通过这一行:

@app.route('/v1/api/check_current_weather_by_city')

尽管有这个问题,但它不应该向您提出RuntimeError: Working outside of request context.。一定要正确初始化flask,app是在这个文件中初始化的吗?你可能需要这样一行:app = Flask(__name__)

这是一个蓝图吗?如果是,请确保也对其进行初始化。检查official documentation

【讨论】:

猜你喜欢
  • 2017-11-09
  • 2019-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-24
  • 2016-12-23
  • 1970-01-01
  • 2020-12-20
相关资源
最近更新 更多