Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用flattle.py动态路由_Python_Bottle - Fatal编程技术网

Python 使用flattle.py动态路由

Python 使用flattle.py动态路由,python,bottle,Python,Bottle,我对瓶子框架非常陌生,在尝试使用动态路由服务静态文件时,我很难理解我做错了什么 当我使用精确的值时,以下内容对我来说非常有用: @route('/files/somefile.txt') def serve_somefile(): return static_file('somefile.txt', root = '/directory/to/files') 但是,我正在尝试创建一个动态路由,以基于 这对我不起作用: @route('/files/<filename>') d

我对瓶子框架非常陌生,在尝试使用动态路由服务静态文件时,我很难理解我做错了什么

当我使用精确的值时,以下内容对我来说非常有用:

@route('/files/somefile.txt')
def serve_somefile():
   return static_file('somefile.txt', root = '/directory/to/files')
但是,我正在尝试创建一个动态路由,以基于

这对我不起作用:

@route('/files/<filename>')
def serve_somefile(filename):
   return static_file(filename, root= '/directory/to/files')
@route(“/files/”)
def SERVER_somefile(文件名):
返回静态_文件(文件名,根='/directory/to/files')
我从服务器得到404响应,尽管它接收到与上面示例相同的get请求


有人能指出我在这里做错了什么吗?

是否尝试将参数指定为路径(如他们的示例中所示):

@route(“/files/”)
def SERVER_somefile(文件名):
返回静态_文件(文件名,根='/directory/to/files')

在我看来,您的代码中没有任何错误。(我同意@Ashalynd的说法,您应该在这里使用
:path
。)

事实上,我试过运行你的代码,两种情况都有效

也许你用的是旧版本的瓶子?我是0.12.7

--

以下是我的完整示例,以防有所帮助:

import bottle
from bottle import route, static_file

@route('/files/<filename>')
def serve_somefile(filename):
    return static_file(filename, root= '/Users/ron/Documents/so/25043651')

bottle.run(host='0.0.0.0', port=8080)
进口瓶
从瓶子导入路径,静态_文件
@路由(“/files/”)
def SERVER_somefile(文件名):
返回静态_文件(文件名,root='/Users/ron/Documents/so/25043651')
瓶子运行(主机=0.0.0.0',端口=8080)

filename:path
是这样的,它可以为子目录中的文件提供服务。不幸的是,添加:path筛选器并没有什么区别。还有404。在瓶子匹配之前有没有其他的路线。例如/会导致/files/变成404
import bottle
from bottle import route, static_file

@route('/files/<filename>')
def serve_somefile(filename):
    return static_file(filename, root= '/Users/ron/Documents/so/25043651')

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