POST成功后的Django Rest Framework重定向

时间:2016-08-19 21:07:12

标签: redirect django-rest-framework django-rest-auth

如果端点返回成功,是否有办法将表单POST重定向到特定页面?

在我的特定情况下,我使用django-rest-auth来管理用户身份验证,登录端点(/ rest-auth / login /)返回带有响应的JSON。如果身份验证成功,我想将用户重定向到他的仪表板。

编辑:据我所知,REST api仅适用于后端。如果我想在任何表单发布后设置重定向,我必须找到一种方法,只有我的前端应用程序。我是对的吗?

在这种情况下,Django是开发前端应用程序的不错选择吗? 我已经看过许多提到AngularJS的主题来构建前端。使用JS构建客户端应用程序是一个好主意(我的意思是,对于单页web api,没有后退导航可能性,我认为这不是一种友好的导航方式)?

如果我使用Django构建我的前端,我是否必须编写自己的视图,在此视图中调用后端休息端点,处理结果,并从此视图发送HTTPRequest(例如)?我真的不明白这种方法的好处在哪里。

2 个答案:

答案 0 :(得分:1)

那么,回答你的问题不仅仅是一个解决方案。

您有两种方式:

一切都取决于您的需求。

答案 1 :(得分:1)

  

如果我想在任何表单发布后设置重定向,我必须找到一种方法,只有我的前端应用程序。我是对的吗?

是的,您需要在前端进行重定向。

  

在这种情况下,Django是开发前端应用程序的不错选择吗?

Django是一个用于构建Web服务器的框架,它与前端无关。

  

我的意思是,对于单页web api,没有后退导航的可能性,我认为这不是一种友好的导航方式)

有。例如,这是angularjs的ui-routerHere是实际工作页面的示例。如您所见,url相应地更改,就像传统的服务器呈现的静态html页面一样。

当浏览器向您的服务器发送请求时,django会调用相应的视图函数来呈现视图,该视图只是一个html文件,并将其发送回浏览器。然后浏览器呈现页面。除此之外,django与html文件无关。浏览器的工作是解析html,并相应地进行渲染。

所以,要明确的是,django不适合前端。对于您的Web应用程序,您可以使用angularjs。但是,如果你真的不想写很多javascript代码,我建议看一下Polymer(polymer-project.org,哦,我的小声誉),它真的很容易使用。