Beispielcode für Django+Vue-Registrierung und -Anmeldung

Beispielcode für Django+Vue-Registrierung und -Anmeldung

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.
Die Funktion des Formulars besteht darin, Daten zu sammeln, also den vom Benutzer auf der Front-End-Seite eingegebenen Wert abzurufen. numberValidateForm: das im Frontend definierte Formular
$axios muss bei Verwendung global in main.js registriert werden. .then stellt die Operation nach dem Erfolg dar und .catch die Operation nach dem Fehler.

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);
  }
);

Einloggen

Formular 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:
  • Django-Registrierung zum Senden eines Bestätigungscodes per E-Mail
  • Allgemeine Implementierungsmethode für das Django-Registrierungsfunktionsmodul
  • So registrieren Sie eine Datenbanktabelle im Django-Admin-Hintergrund
  • Implementierungsbeispiel für ein Django-Benutzeranmelde- und -registrierungssystem
  • Beispiel für vom Django-Framework implementierte Funktionen zur Benutzerregistrierung, Anmeldung und Abmeldung
  • Django implementiert eine Beispielerklärung zur Benutzerregistrierung
  • Django implementiert Anmelde-, Registrierungs- und Abmeldefunktionen unter dem Auth-Modul
  • Detaillierte Erläuterung des Prozesses zur Implementierung einer einfachen Registrierungsfunktion in Python Django
  • Beispielcode für das Anmelde- und Registrierungssystem von Django
  • Django schließt die E-Mail-Benutzerregistrierung und Kontoaktivierung über Ajax ab
  • Implementierung der Registrierungsfunktion des Django Mall-Projekts

<<:  Das Linux-System verbietet den Remote-Login-Befehl des Root-Kontos

>>:  Detaillierte Erklärung zur Verwendung der Funktion find_in_set() in MySQL

Artikel empfehlen

JS implementiert Städtelisteneffekt basierend auf VUE-Komponente

In diesem Artikelbeispiel wird der spezifische Co...

So richten Sie den PostgreSQL-Start unter Ubuntu 16.04 ein

Da PostgreSQL kompiliert und installiert ist, müs...

Häufige Verwendung von Hooks in React

Inhaltsverzeichnis 1. Was ist ein Hook? 2. Warum ...

MySQL-Deduplizierungsmethoden

MySQL-Deduplizierungsmethoden 【Anfänger】 Es gibt ...

So geben Sie Parametervariablen extern im Docker an

In diesem Artikel wird hauptsächlich erläutert, w...

So stellen Sie mit Navicat Premium eine Remoteverbindung zur MySQL-Datenbank her

Derjenige, der eine neue Verbindung herstellt, en...

Zusammenfassung der Verwendung des CSS-Bereichs (Stilaufteilung)

1. Verwendung des CSS-Bereichs (Stilaufteilung) I...

Sechs Methoden zur Nginx-Optimierung

1. Optimieren Sie die Nginx-Parallelität [root@pr...

Allgemeine Überlegungen zum Erstellen eines Hadoop 3.2.0-Clusters

Ein Port ändert sich In Version 3.2.0 beträgt der...