2016-08-19 13 views
2

Gibt es eine Möglichkeit, einen Formular-POST auf eine bestimmte Seite umzuleiten, wenn der Endpunkt erfolgreich zurückgegeben wird?Django Rest Framework-Umleitung nach POST-Erfolg

In meinem speziellen Fall verwende ich django-rest-auth, um die Benutzerauthentifizierung zu verwalten, und der Anmeldeendpunkt (/ rest-auth/login /) gibt einen JSON mit der Antwort zurück. Ich möchte den Benutzer zu seinem Dashboard umleiten, wenn die Authentifizierung erfolgreich ist.

EDIT: Soweit ich verstehe, ist die REST API nur für Backend. Wenn ich nach einem Formular-Post eine Umleitung einstellen will, muss ich nur mit meiner Frontend-Anwendung einen Weg finden. Habe ich recht ?

In diesem Fall ist Django eine gute Wahl, um die Frontend-Anwendung zu entwickeln? Ich habe viele Themen gesehen, wo AngularJS erwähnt wird, um das Frontend zu bauen. Ist es eine gute Idee, eine Client-App mit JS zu erstellen (ich meine, für eine einseitige Web-API gibt es keine Möglichkeit zur Navigation zurück und weiter, ich denke, das ist keine freundliche Art zu navigieren)?

Wenn ich mein Frontend mit Django erstelle, muss ich meine eigene Ansicht schreiben, den Endpunkt der Backend-Station in dieser Ansicht aufrufen, das Ergebnis verarbeiten und eine HTTPRequest (z. B.) aus dieser Ansicht senden? Ich verstehe nicht wirklich, wo ist der Gewinn mit dieser Methode.

Antwort

1

Nun, Antwort auf Ihre Frage könnte nicht nur eine Lösung sein.

Sie haben zwei Möglichkeiten:

Alles Anmeldung gehen hängt von Ihren Bedürfnissen ab.

1

Wenn ich eine Umleitung nach einem Formular-Post festlegen möchte, muss ich einen Weg nur mit meiner Frontend-Anwendung finden. Habe ich recht ?

Ja, Sie müssen die Umleitung am Front-End vornehmen.

In diesem Fall ist Django eine gute Wahl, um die Frontend-Anwendung zu entwickeln?

Django ist ein Framework für den Aufbau von Webservern, und es hat nichts mit Front-End zu tun.

Ich meine, für eine Seite web api, gibt es keinen Weg zurück und weiter zum nächsten Navigations Möglichkeit, ich denke, das ist nicht eine freundliche Art und Weise zu navigieren)

Es gibt. Zum Beispiel ist hier die ui-router für angularjs. Here ist ein Beispiel für eine tatsächliche Arbeitsseite. Wie Sie sehen können, ändert sich die URL entsprechend, verhält sich einfach wie traditionelle Server-gerenderte statische HTML-Seiten.

Wenn der Browser eine Anfrage an Ihren Server sendet, ruft django die entsprechende View-Funktion auf, um eine Ansicht, die nur eine HTML-Datei ist, zu rendern und an den Browser zurückzusenden. Dann rendert der Browser die Seite. Jenseits dieses Punktes hat Django nichts mehr mit der HTML-Datei zu tun.Es ist die Aufgabe des Browsers, den HTML-Code zu analysieren und entsprechend zu rendern.

Also, um klar zu sein, ist Django nicht für Front-End. Für Ihre Webanwendung können Sie angularjs sicher verwenden. Wenn Sie jedoch nicht wirklich viel JavaScript-Code schreiben wollen, empfehlen wir Ihnen einen Blick auf Polymer (polymer-project.org, oh mein kleiner Ruf), der wirklich einfach zu benutzen ist.

Verwandte Themen