簡體   English   中英

Django 連接到 MySql 數據庫表

[英]Django Connect To MySql DB Table

我正在嘗試在不使用 Django user.authenticate 系統的情況下制作一個身份驗證系統,因為我想制作 2 個單獨的登錄系統。 IT&Web開發部1名,普通用戶1名。 所以我為我的 IT 部門使用相同的 MySql 數據庫和 Auth_user。 我創建了一個帳戶應用程序,我想使用它的 accounts_benutzer(德語用戶)表。

我可以通過管理面板感謝應用系統用戶等,但我希望 IT 部門用戶注冊的用戶使用給定的用戶名和密碼登錄主頁

我的視圖/模型/模板是這樣的:

帳戶/模型.py:

class Benutzer(models.Model):
 
regex = RegexValidator(regex=r'^\+?1?\d{7,15}$')

    name = models.CharField(max_length=100)
    passwort = models.CharField(max_length=32)
    email = models.EmailField(max_length=254)
....

帳戶/視圖.py:

from django.shortcuts import redirect, render
from django.contrib import messages
from django.contrib.auth.models import User, auth
from .models import Benutzer

def login(request):

    if request.method == 'POST':
        username = request.POST['name']
        passwort = request.POST['passwort']

        if (username == Benutzer.name) and (passwort == Benutzer.passwort):
            return redirect('/')
        else:
            messages.info(request,'Falsche Zugangs Daten!')
            return redirect('/accounts/login')

    else:
        return render(request, 'login.html')

登錄.html:

{% load static %}
<form action="login" method="post">
        {% csrf_token %}

        <p>Benutzername: <input type="text" name="name" placeholder="Benutzer Name"></p>
        <p>Passwort: <input type="password" name="passwort" placeholder="Passwort"></p>
        <input type="submit" value="Bestaetigen">-<input type="reset" value="Löschen">
    </form>
    <div>
        {% for message in messages %}
        <h3>{{message}}</h3>
        {% endfor %}

我知道使用 Benutzer.user 或 Benutzer.passwort 沒有意義,但這就是我要問的重點。 我如何才能將我從網站獲得的數據與我的 MySQL 表 accounts_benutzer 上的數據進行比較以授予用戶訪問權限?

我認為還有其他方法,但這應該可行。

def login(request):

if request.method == 'POST':
    username = request.POST['name']
    passwort = request.POST['passwort']

    B_user = Benutzer.objects.filter(name=username).first()

    if B_user and B_user.passwort == passwort:
        return redirect('/')
    else:
        messages.info(request,'Falsche Zugangs Daten!')
        return redirect('/accounts/login')

else:
    return render(request, 'login.html')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM