为了账号安全,请及时绑定邮箱和手机立即绑定

Django 连接到 MySql 数据库表

Django 连接到 MySql 数据库表

慕后森 2023-08-15 16:58:20
我正在尝试在不使用 Django user.authenticate 系统的情况下创建一个身份验证系统,因为我想创建 2 个单独的登录系统。1 个供 IT 和 Web 开发部门使用,另外 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)....账户/views.py:from django.shortcuts import redirect, renderfrom django.contrib import messagesfrom django.contrib.auth.models import User, authfrom .models import Benutzerdef 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 表 account_benutzer 上的数据进行比较,以授予用户访问权限?
查看完整描述

1 回答

?
达令说

TA贡献1821条经验 获得超6个赞

我认为还有其他方法,但这应该有效。


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')


查看完整回答
反对 回复 2023-08-15
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信