Python Django 2.1.4登记表+;登录页面
嗨,我是Django的新手,需要注册表格和登录的帮助。我能够注册,并能够看到在管理员注册模式下注册的用户凭据。但是,我试图获取数据库中的用户凭据,然后想进行登录,但无法进行登录。有人能帮忙吗 models.pyPython Django 2.1.4登记表+;登录页面,python,django,Python,Django,嗨,我是Django的新手,需要注册表格和登录的帮助。我能够注册,并能够看到在管理员注册模式下注册的用户凭据。但是,我试图获取数据库中的用户凭据,然后想进行登录,但无法进行登录。有人能帮忙吗 models.py class register(models.Model): name = models.CharField(max_length=250) username = models.CharField(max_length=20) password = models.C
class register(models.Model):
name = models.CharField(max_length=250)
username = models.CharField(max_length=20)
password = models.CharField(max_length=20)
occupation = models.CharField(max_length=100)
def __unicode__(self):
return str(self.username)
Views.py
#register
def registerForm(request):
if request.method == 'POST':
if request.POST.get('name') and request.POST.get('username') and request.POST.get('password') and request.POST.get('occupation'):
reg = register()
reg.name = request.POST['name']
reg.username = request.POST['username']
reg.password = request.POST['password']
reg.occupation = request.POST['occupation']
reg.save()
return render(request, 'login.html')
else:
return render(request, 'register.html')
#Login
def Login(request):
if request.method == 'POST':
if request.POST.get('username') and request.POST.get('password'):
usr_login = register()
usr_login.username = request.POST['username']
usr_login.password = request.POST['password']
usr_login.user = authenticate(username=username, password=password)
if usr_login.user:
login(request, usr_login.user)
return HttpResponseRedirect('/forum/')
else:
error = "Username and Password are invalid. Please try again."
return render(request, 'login.html')
else:
return render(request, 'login.html')
login.html
<form method="post" action="/forum/">
{% csrf_token %}
<div class="form-group">
<label for="username">Username:</label>
<input type="username" class="form-control" id="username" placeholder="Enter username" required="required">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd" placeholder="Enter password" required="required">
</div>
<div class="row">
<div class="col" align="center">
<div class="form-group form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox"> Remember me
</label>
</div>
<button type="submit" class="btn btn-primary" value="login">Submit</button><br><br>
Not yet registered? <a href="/registeration/">Register Here.</a>
</form>
您正在尝试使用django内置身份验证后端对用户进行身份验证,但未使用django用户模型。在您的情况下,您必须创建自定义身份验证逻辑。我强烈建议您对用户的密码进行哈希运算
如果要使用内置身份验证框架,请查看文档以了解更多信息是否可以不使用django内置身份验证后端,只创建一个新的简单模型来存储和使用登录页面的用户凭据?是的。您只需要定义自己的身份验证方法。因为我想要一些简单的东西,所以我尝试阅读django文档,但无法理解。我为注册创建了一个模型,一旦用户单击注册表单页面上的提交按钮,我就将其存储到数据库中。但是,从这里如何实现登录功能?
def custom\u login(用户名、密码):try:return register.objects.get(username=username,password=password),register除外。DoesNotExists:return False
我不建议您使用自己的登录,因为您将不得不编写很多样板代码。您必须自己管理会话,创建授权机制等。。。如果你真的想要定制用户模型,只需使用django方式即可。非常感谢你,我成功实现了内置身份验证!!
# login
url(r'^login/$', views.Login, name='login'),
# register
url(r'^registeration/$', views.registerForm, name='registeration'),