[英]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.