gpt4 book ai didi

python - 提供静态文件时如何将 @bottle.route 转换为 Bottle.route() ?

转载 作者:行者123 更新时间:2023-11-30 23:03:56 27 4
gpt4 key购买 nike

我通常使用method version处理 Bottle 中的路由

bottle.route("/charge", "GET", self.charge)

bottle 文档严重依赖 @route 装饰器来处理路由,我有一个案例,我不知道如何转换为我最喜欢的版本。 serving static files 上的文档使用示例

from bottle import static_file

@route('/static/<filename:path>')
def send_static(filename):
return static_file(filename, root='/path/to/static/files')

有没有办法把它变成某种形式

bottle.route("/static", "GET", static_file)

build ?特别是我对如何将 filenameroot 参数传递给 static_file 感到困惑。

最佳答案

接受的答案并不能很好地解决你的问题,所以我会插话。你似乎试图使用 Bottle 的 static_file 作为路由目标,但它并不意味着要这样使用方式。正如您引用的示例所示,static_file 旨在从路由目标函数内调用。这是一个完整的工作示例:

import bottle

class AAA(object):
def __init__(self, static_file_root):
self.static_file_root = static_file_root

def assign_routes(self):
bottle.route('/aaa', 'GET', self.aaa)
bottle.route('/static/<filename:path>', 'GET', self.send_static)

def aaa(self):
return ['this is aaa\n']

def send_static(self, filename):
return bottle.static_file(filename, self.static_file_root)

aaa = AAA('/tmp')
aaa.assign_routes()
bottle.run(host='0.0.0.0', port=8080)

使用示例:

% echo "this is foo" > /tmp/foo
% curl http://localhost:8080/static/foo
this is foo

希望这有帮助。

关于python - 提供静态文件时如何将 @bottle.route 转换为 Bottle.route() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33923610/

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