繁体   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