我继承了一个项目,我正在努力使其尽可能干净。现在,每个 View 只有 if/else block 来处理不同的 HTTP 请求方法(GET、POST、DELETE 等)。我希望有一个 View 方法,不仅可以处理每个路由,还可以处理每个路由+请求方法的组合。
我正在尝试这个
@view_config(route_name='foo', request_method='GET', renderer='json')
def foo(request):
return Response(json.dumps({'route' : 'foo', 'method' : 'GET'}))
@view_config(route_name='foo', request_method='POST', renderer='json')
def foo(request):
return Response(json.dumpds({'route' : 'foo', 'method' : 'POST'}))
但它不起作用。有人可以帮忙吗?
最佳答案
您必须将 GET 的函数名称更改为 get_foo,将 POST 的函数名称更改为 post_foo
@view_config(route_name='foo', request_method='GET', renderer='json')
def get_foo(request):
return Response(json.dumps({'route' : 'foo', 'method' : 'GET'}))
@view_config(route_name='foo', request_method='POST', renderer='json')
def post_foo(request):
return Response(json.dumpds({'route' : 'foo', 'method' : 'POST'}))
关于python - 在 Pyramid 中,我可以根据请求方法让多个 View 指向同一路由/URL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36456683/