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

So ändern Sie die Server-UUID in MySQL

Quelle des Problems: Wenn der Slave-Server der ge...

Stellen Sie IE8 so ein, dass Code im IE7-Stil verwendet wird

<meta http-equiv="x-ua-kompatibel" co...

Detaillierte Erläuterung häufig verwendeter Nginx-Umschreibregeln

Dieser Artikel enthält einige häufig verwendete U...

Die Rolle von nextTick in Vue und mehrere einfache Anwendungsszenarien

Zweck Verstehen Sie die Rolle von nextTick und me...

Eine kleine Frage zur Ausführungsreihenfolge von SQL in MySQL

Ich bin heute bei der Arbeit auf ein SQL-Problem ...

Vergleichende Analyse von IN und Exists in MySQL-Anweisungen

Hintergrund Als ich kürzlich SQL-Anweisungen schr...

So legen Sie die Breite und Höhe von HTML-Tabellenzellen fest

Beim Erstellen von Webseiten tritt häufig das Pro...

Tiefgreifendes Verständnis der Verwendung von Vue

Inhaltsverzeichnis Verstehen Sie das Kernkonzept ...

MySQL-Schritte vollständig löschen

Inhaltsverzeichnis 1. Stoppen Sie zuerst den MySQ...

Analyse der Lösung für das Problem der gemeinsamen Nutzung von Nginx-Sitzungen

Dieser Artikel stellt hauptsächlich die Lösung fü...