gpt4 book ai didi

python 瓶: how to pass parameters into function handler

转载 作者:行者123 更新时间:2023-11-30 23:09:12 25 4
gpt4 key购买 nike

当 http GET 请求发送到特定路由时,我尝试调用函数,但我想将参数传递给给定函数。例如,我有以下内容:

    self.app.route('/here', ['GET'], self.here_method)

哪里self.here_method(self)当 GET 请求发送到 /here 时调用路线。相反,我想调用方法 self.here_method(self, 'param') 。我怎样才能做到这一点?我试过self.app.route('/here', ['GET'], self.here_method, 'param') ,但它不起作用。我评论了this documentation ,但我找不到任何答案。

最佳答案

目前尚不清楚您是在询问如何将路线与闭包关联起来,还是只是与带有参数的函数关联起来。

如果您只想将参数作为 URI 的一部分,请使用 Bottle 的动态 path routing .

另一方面,如果您想“捕获”在路由定义时已知的值,并将其烘焙到路由处理程序中,则使用 functools.partial .

这是两者的示例。

from bottle import Bottle
import functools

app = Bottle()

# take a param from the URI
@app.route('/hello1/<param>')
def hello1(param):
return ['this function takes 1 param: {}'.format(param)]

# "bake" in a param value at route definition time
hello2 = functools.partial(hello1, param='the_value')
app.route('/hello2', ['GET'], hello2)

app.run(host='0.0.0.0', port=8080)

及其输出示例:

% curl http://localhost:8080/hello1/foo
127.0.0.1 - - [11/Jul/2015 18:55:49] "GET /hello1/foo HTTP/1.1" 200 32
this function takes 1 param: foo

% curl http://localhost:8080/hello2
127.0.0.1 - - [11/Jul/2015 18:55:51] "GET /hello2 HTTP/1.1" 200 38
this function takes 1 param: the_value

关于 python 瓶: how to pass parameters into function handler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31360386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com