Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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 使用get_url()或url()访问端点的正确方法是什么?_Python_Bottle - Fatal编程技术网

Python 使用get_url()或url()访问端点的正确方法是什么?

Python 使用get_url()或url()访问端点的正确方法是什么?,python,bottle,Python,Bottle,我在用瓶子。 例如,我定义了几个路由及其相应的视图函数 /log/<page> /showlogs iam接收的错误是: [Sun Sep 23 00:35:21.013955 2018] [wsgi:error] [pid 13159] [remote 45.77.155.110:50978] File "/usr/lib/python3.6/site-packages/bottle.py", line 766, in get_url [Sun Sep 23 00:35:21

我在用瓶子。 例如,我定义了几个路由及其相应的视图函数

/log/<page>
/showlogs
iam接收的错误是:

[Sun Sep 23 00:35:21.013955 2018] [wsgi:error] [pid 13159] [remote 45.77.155.110:50978]   File "/usr/lib/python3.6/site-packages/bottle.py", line 766, in get_url
[Sun Sep 23 00:35:21.013971 2018] [wsgi:error] [pid 13159] [remote 45.77.155.110:50978]     location = self.router.build(routename, **kargs).lstrip('/')
[Sun Sep 23 00:35:21.013975 2018] [wsgi:error] [pid 13159] [remote 45.77.155.110:50978]   File "/usr/lib/python3.6/site-packages/bottle.py", line 403, in build
[Sun Sep 23 00:35:21.013978 2018] [wsgi:error] [pid 13159] [remote 45.77.155.110:50978]     if not builder: raise RouteBuildError("No route with that name.", _name)
[Sun Sep 23 00:35:21.013982 2018] [wsgi:error] [pid 13159] [remote 45.77.155.110:50978] bottle.RouteBuildError: ('No route with that name.', 'log')
为什么get_url抱怨没有使用该名称的路由,而它们显然是

(1)您没有向我们展示您的代码,因此我们无法告诉您它有什么问题,但这里有一个
get\u url
的工作示例。(请注意,
get\u url
battle
类的一个方法,所以您必须这样使用它。)

从瓶子导入瓶子
app=瓶子()
@app.route(“/log/”)
def句柄_日志(第页):
return['您的页面为:{}'。格式(页面)]
@app.route(“/showlogs”)
def handle_showlogs():
return['显示日志…']
打印应用程序。获取url('/showlogs')#打印“/showlogs”
打印应用程序。获取url('/log/',page='123')#打印“/log/123”
打印app.get_url('nope')#如预期的那样引发RouteBuildError
(2) 最后一个问题,

我应该如何访问端点

这让我怀疑这是否是一个错误(因为我不确定“访问”在这里可能意味着什么)

如果是(换句话说:如果现在你知道如何成功地调用
get_url
,你仍然无法完成你想做的事情),那么请解决这个问题并简单地提出一个新问题,说明你的目标;我们会尽力帮忙的


希望有帮助

通过阅读您的答案,似乎我在使用app.get\u url时自己在调用get\u url。但是现在可以找到get\u url了,我收到了错误
battle.RouteBuildError:('No route with the name.','log')
我已经更新了代码供您查看。请密切注意我如何调用
get\u url
,您将看到它与您调用它的方式有何不同<代码>应用程序。获取url('/log/',page='123')。注意那些斜线。啊,是的!当我使用flask时,我被它迷住了,因为在flask中,我使用url_表示('log',page=123)。我觉得get_url也在以同样的方式工作。为什么前面的“应用程序”是必要的?很高兴它有帮助<代码>应用程序。是必需的,因为
获取url
瓶子
类的一种方法。可以改用“app.url()”吗?!
get_url( 'log', page=page )
get_url( 'showlogs' )
[Sun Sep 23 00:35:21.013955 2018] [wsgi:error] [pid 13159] [remote 45.77.155.110:50978]   File "/usr/lib/python3.6/site-packages/bottle.py", line 766, in get_url
[Sun Sep 23 00:35:21.013971 2018] [wsgi:error] [pid 13159] [remote 45.77.155.110:50978]     location = self.router.build(routename, **kargs).lstrip('/')
[Sun Sep 23 00:35:21.013975 2018] [wsgi:error] [pid 13159] [remote 45.77.155.110:50978]   File "/usr/lib/python3.6/site-packages/bottle.py", line 403, in build
[Sun Sep 23 00:35:21.013978 2018] [wsgi:error] [pid 13159] [remote 45.77.155.110:50978]     if not builder: raise RouteBuildError("No route with that name.", _name)
[Sun Sep 23 00:35:21.013982 2018] [wsgi:error] [pid 13159] [remote 45.77.155.110:50978] bottle.RouteBuildError: ('No route with that name.', 'log')
from bottle import Bottle

app = Bottle()

@app.route('/log/<page>')
def handle_log(page):
    return ['your page was: {}'.format(page)]

@app.route('/showlogs')
def handle_showlogs():
    return ['showing the logs...']

print app.get_url('/showlogs')  # prints "/showlogs"
print app.get_url('/log/<page>', page='123')  # prints "/log/123"
print app.get_url('nope')  # raises RouteBuildError, as expected