在django中以我自己的登录表单验证用户名和密码

时间:2017-09-12 18:09:17

标签: django login

我的models.py中有一个类'user'...用户有几个属性,如userid,username,password等。这是我的登录页面login.html

的一部分
<form action="" method="post" enctype="multipart/form-data">
                <h1>Login Form</h1>
<div>
                    <label><b>Username</b></label>
                    <input type="text" id="username" placeholder="Enter username" required="">                  
                </div>

                <div class="password">
                    <label id="labelp"><b>Password</b></label>
                    <input type="text" required="" placeholder="Enter password" id="password">
                </div>

                <div class="submitb">
                    <input type="submit" value="Log In">

                </div>
</div>

我想从此处检索此用户名和密码,并希望根据我在用户表中的值(用户名和密码)对其进行身份验证,然后登录用户。我该怎么做?

2 个答案:

答案 0 :(得分:0)

使用Django(django.contrib.auth.views.login)提供的登录视图。您可以使用以下条目将模板连接到urls.py中的登录视图:

url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': '/login.html'}),

答案 1 :(得分:0)

您可以使用表单登录,请记住在输入中的表单和名称中添加{%crsf_token%}。

来自django.contrib.auth import authenticate,login

def my_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(request, username=username, password=password)
    if user is not None:
        login(request, user)
        # Redirect to a success page.
        ...
    else:
        # Return an 'invalid login' error message.
        ...

这是视图,因此您获取字段然后使用函数authenticate来获取用户,并且如果用户和密码是正确的登录;如果没有返回无效的登录错误。您可以看到更多here