registrieren Das Front-End verwendet Axios in Vue, um Werte zu übergeben, und sendet das erhaltene Konto und Kennwort in Form eines Formulars an das Back-End. Formular absenden(Formularname) { let data = neue FormData() data.append('Benutzername',this.numberValidateForm.name) data.append('Passwort',diese.NummerValidateForm.pass) dies.$axios.post('/api/register/',data).then((res) => { this.$router.push({ name: "login" }) // Routensprung }).catch((res) => { console.log("Fehler beim Senden!!"); gibt false zurück; }) } Um $axios für die domänenübergreifende Authentifizierung zu verwenden, müssen Sie zuerst einen Proxy einrichten und dann X-CSRFToken zum Anforderungsheader hinzufügen. vue.config.js Schauspielkunst Proxy: { "/api":{ Ziel: "http://127.0.0.1:8000/", changeOrigin: true // Ob ein Proxy verwendet werden soll} }, //Proxy festlegen, Haupt-JS Axios von „axios“ importieren Vue.prototype.$axios = Axios let getCookie = Funktion (Cookie) { lass reg = /csrftoken=([\w]+)[;]?/g returniere reg.exec(Cookie)[1] } Axios.interceptors.request.use( Funktion(Konfiguration) { //X-CSRFToken-Headerinformationen einheitlich vor der Post-Anfrage hinzufügen let cookie = document.cookie; wenn(cookie && config.method == 'post'){ config.headers['X-CSRFToken'] = getCookie(Cookie); } Konfiguration zurückgeben; }, Funktion (Fehler) { // Tun Sie etwas mit dem Anforderungsfehler returniere Promise.reject(Fehler); } ); EinloggenFormular absenden(Formularname) { this.$refs[formName].validate(valid => { //Vue-Frontend-Validierungsregeln if (valid) { let data = neue FormData() data.append('Benutzername',this.numberValidateForm.name) data.append('Passwort',diese.NummerValidateForm.pass) dies.$axios.post('/api/login/',data).then((res) => { wenn(res.data.code == "ok"){ konsole.log(12345678) dies.$router.push({name:"firstpage"}) } }) } anders { console.log("Fehler beim Senden!!"); gibt false zurück; } }); }, Ansicht.py Django-Hintergrundansichtsfunktion von django.shortcuts importiere render von django.views importiere Ansicht von django.http importiere HttpResponse, JsonResponse von django.contrib.auth.models importiere Benutzer # Djangos gekapselte Authentifizierungsfunktion von django.contrib importiere auth Klasse Login(Ansicht): def post(selbst, Anfrage): versuchen: Benutzer = Anfrage.POST.get('Benutzername',Keine) pwd = request.POST.get('Passwort',Keine) # Passwort überprüfen obj = auth.authenticate(request,username=user,password=pwd) wenn Objekt: return JsonResponse({'code':'ok','message':'Konto- und Passwortüberprüfung erfolgreich'}) außer: return JsonResponse({'code':'no','message':'Überprüfung fehlgeschlagen'}) Klasse Register(Ansicht): def post(selbst, Anfrage): versuchen: Benutzername = Anfrage.POST.get('Benutzername',Keine) Passwort = Anfrage.POST.get('Passwort',Keine) Benutzer = Benutzer.Objekte.create_user(Benutzername=Benutzername,Passwort=Passwort) Benutzer.Speichern() außer: return JsonResponse({'code':'no','message':'Registrierung fehlgeschlagen'}) return JsonResponse({'code':'ok','message':'Registrierung erfolgreich'}) Dies ist das Ende dieses Artikels über den Beispielcode zur Implementierung der Registrierung und Anmeldung mit Django + Vue. Weitere relevante Inhalte zur Registrierung und Anmeldung mit Django + Vue finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Das Linux-System verbietet den Remote-Login-Befehl des Root-Kontos
>>: Detaillierte Erklärung zur Verwendung der Funktion find_in_set() in MySQL
Heute zeige ich Ihnen einen gut aussehenden Zähle...
Installieren Sie zugehörige Abhängigkeiten npm ic...
Über let, um Probleme durch Schließung zu vermeid...
Zum Übertragen von Dateien zwischen dem Host und ...
Derzeit verfügt Nginx über einen Reverse-Proxy fü...
In diesem Artikel wird der Beispielcode von CSS3 ...
1. Warum verwendet Nginx gzip? 1. Die Rolle der K...
Nachdem ich React eine Weile studiert habe, möcht...
Inhaltsverzeichnis Überblick erster Schritt Schri...
Ubuntu 20.04 wurde im April 2020 offiziell veröff...
Vorwort MySQL unterstützt Multithread-Replikation...
Ich wusste vorher, dass man await verwenden muss,...
Inhaltsverzeichnis Ursache des Vorfalls Verwenden...
Inhaltsverzeichnis Vorwort 1. Ermitteln Sie die L...
Hinzufügen einer Netzwerkschnittstelle zum Contai...