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
In diesem Artikelbeispiel wird der spezifische Co...
Da PostgreSQL kompiliert und installiert ist, müs...
In diesem Artikel wird der spezifische JavaScript...
Inhaltsverzeichnis 1. Was ist ein Hook? 2. Warum ...
Wir gehen davon aus, dass Sie ein linuxer sind, a...
MySQL-Deduplizierungsmethoden 【Anfänger】 Es gibt ...
In diesem Artikel wird hauptsächlich erläutert, w...
Inhaltsverzeichnis Vorwort: erreichen: Zusammenfa...
Derjenige, der eine neue Verbindung herstellt, en...
1. MySQL installieren # Laden Sie MySQL im Docker...
1. Verwendung des CSS-Bereichs (Stilaufteilung) I...
1. Erstellen Sie eine Tabelle CREATE TABLE `stude...
CSS3-Syntax: (1rem = 100px für ein 750px-Design) ...
1. Optimieren Sie die Nginx-Parallelität [root@pr...
Ein Port ändert sich In Version 3.2.0 beträgt der...