flask restapi 获取查询参数对我不起作用

问题描述

我有以下使用 pythonflaskrequest 代码

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

解决方法

您的手中似乎有一些复杂的问题。首先,您的路由不应包含 tablets,而应仅包含网址的“静态”部分。

替换这一行:

?city=Tel-aviv

通过这一行:

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

尽管存在这个问题,但它不应该让您感到@app.route('/v1/api/check_current_weather_by_city') 。一定要正确初始化flask,RuntimeError: Working outside of request context.是在这个文件中初始化的吗?您可能需要这样一行:app

这是蓝图吗?如果是,请务必对其进行初始化。检查 official documentation