Web2py return json 或重定向

Web2py return json or redirect

在 web2py 中,我想设置一个控制器,为 html 视图重定向,但为 json 视图提供 json 响应,例如

http://mysite/page.html/1234 -> redirects to http://www.google.com/q=mydata http://mysite/page.json/1234 -> returns JSON {'1234':'my data'}

(此示例假设我有一个数据库查询 returns 'mydata' for id=1234)

我无法立即看到如何执行此操作,因为在控制器中调用了 redirect() 函数,但是关于 json 或 html 的决定似乎是稍后做出的,一次从控制器返回一个 dict()

在控制器中可以使用request.extension来决定是redirect()还是return response.json(my_data)

我还发现您可以在 .html 视图中设置 {{redirect('http://site/{}'.format(data))}} ,它会进行正确的重定向在 html 文件本身中(并设置正确的内容 headers)。换句话说,重定向功能不需要在控制器中调用,如果那样更容易的话。