Flask:将url路径传递给类构造函数



我正在尝试一些可能非常不正统的东西:我需要传递一个参数,该参数通过url路径传入到基于类的MethodView的类构造函数。

http://127.0.0.1:5000/child/my_id_string

我想把my_id_string作为arg1传递给下面的构造函数。

我最有希望的尝试是基于这个问题,但我需要使用基于类的视图而不是函数。不幸的是,此调用背后的逻辑比示例要复杂一些,也就是说,我不能简单地重构代码以不使用&;my_id&;

from flask import Flask, request
from flask.views import MethodView
BASE = 11
app = Flask('mybase')
class Child(MethodView):
def __init__(self, base, arg1=None):
self.base = base
print('some init process, where I need arg1...')
def get(self, arg1):
return f'Some operation with {str(arg1)}.'
app.add_url_rule(
'/child/<arg1>',
'child',
view_func=Child.as_view(
'child_view',
BASE,
arg1 = request.args.get('my_id')
),
methods=['GET',]
)

我得到以下代码片段的错误,因为我认为注册发生在/没有特定请求之前,这是正确的吗?希望,有人能帮上忙。提前感谢!

RuntimeError:在请求上下文之外工作。
这通常意味着您尝试使用所需的功能一个活动的HTTP请求。请查阅有关测试的文档关于如何避免此问题的信息。

我对你的语法有点困惑:app = flask("mybase"):i useapp = flask(__name__)

但这就是我要做的。

@app.route("/child/<arg1>")
def x(arg1):
varArg1 = arg1
#now you have whatever is in the url will be passed into varArg1.

相关内容

  • 没有找到相关文章