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

2024-10-01 17:36:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是瓶子。 例如,我用它们对应的视图函数定义了几个路由

/log/<page>
/showlogs

我该如何访问端点?!以下是相关的视图功能:

^{pr2}$

使用get_url访问这些路由的正确方法是什么?我试图:

get_url( 'log', page=page )
get_url( '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抱怨没有这个名称的路由,而它们显然是?!在


Tags: namelog视图urlwsgi路由bottleget
1条回答
网友
1楼 · 发布于 2024-10-01 17:36:49

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

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

(2)最后一个问题

How am i supposed to access the endpoints?

这让我想知道这是否是一个XY problem(因为我不确定这里的“访问”是什么意思)。在

如果它是(换句话说:如果,既然你知道如何成功地调用get_url,你仍然不能做你想做的事情),那么请解决这个问题,简单地问一个新的问题,说明你的目标;我们会尽力帮助你的。在

希望有帮助!在

相关问题 更多 >

    热门问题