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

Native JS implementiert einen sehr gut aussehenden Zähler

Heute zeige ich Ihnen einen gut aussehenden Zähle...

React-Konfiguration px-Konvertierung rem-Methode

Installieren Sie zugehörige Abhängigkeiten npm ic...

Vermeidung von durch Closures verursachten Problemen in JavaScript

Über let, um Probleme durch Schließung zu vermeid...

So übertragen Sie Dateien zwischen Docker-Container und lokalem Computer

Zum Übertragen von Dateien zwischen dem Host und ...

Beispielcode zur Implementierung eines 3D-Text-Hover-Effekts mit CSS3

In diesem Artikel wird der Beispielcode von CSS3 ...

So implementieren Sie eine einfache Datenüberwachung mit JS

Inhaltsverzeichnis Überblick erster Schritt Schri...

So installieren Sie vncserver in Ubuntu 20.04

Ubuntu 20.04 wurde im April 2020 offiziell veröff...

Kann Asynchronität in JavaScript „Await“ speichern?

Ich wusste vorher, dass man await verwenden muss,...

Zusammenfassung von 28 gängigen JavaScript-String-Methoden und Verwendungstipps

Inhaltsverzeichnis Vorwort 1. Ermitteln Sie die L...