Html 在django中从表单中提取用户名和密码
半年多前,我开始在Django做一个项目,因为我想不出一个小细节,所以把它放在了次要位置,但我又回到了这个项目上,我想我可能会在这里得到快速的回应 我的网站工具栏上有一个小表单,由以下HTML生成:Html 在django中从表单中提取用户名和密码,html,django,forms,twitter-bootstrap,django-authentication,Html,Django,Forms,Twitter Bootstrap,Django Authentication,半年多前,我开始在Django做一个项目,因为我想不出一个小细节,所以把它放在了次要位置,但我又回到了这个项目上,我想我可能会在这里得到快速的回应 我的网站工具栏上有一个小表单,由以下HTML生成: <form action="/auth/" method="post" class="navbar-form navbar-right" role="form"> {% csrf_token %} <div class="form-group">
<form action="/auth/" method="post" class="navbar-form navbar-right" role="form"> {% csrf_token %}
<div class="form-group">
<input type="text" placeholder="Email" class="form-control">
</div>
<div class="form-group">
<input type="password" placeholder="Password" class="form-control">
</div>
<button type="submit" class="btn btn-primary">Login</button>
<a class="btn btn-primary" href="/register/">Signup</a>
</form>
上面的代码是我想要处理的登录按钮的点击,正如我的url.py所传递的那样。
然而,每当我提交表单时,我的调试语句总是说电子邮件和密码是空字符串。因此,我必须错误地从表单中提取信息
如何成功登录?请帮忙
谢谢,
erip无法从请求对象中获取值的原因是两个输入都没有名称属性。request.POST.get'username'尝试获取输入的值,该输入的name属性为username,在您的情况下,该属性不存在。因此,添加一个name属性,您就可以这样做了
您还可以进一步利用Django的forms模块,该模块自动为每个字段生成并分配一个name属性,最终将这些输入绑定回您的登录表单。关于这方面的更多信息,请访问官方网站。如何生成表单的HTML?我看不到您输入的名称属性。我不太理解您的问题。您如何生成您在问题中发布的表单HTML?您使用的是Django的模板还是手动键入HTML代码?我使用的是Bootstrap中的模板。我添加了csrf_令牌、action=/auth/method=post和注册按钮。其他一切都来自于添加的name=username和name=password,它就像一个符咒。非常感谢!
def auth_view(request):
email = request.POST.get('username', '')
password = request.POST.get('password', '')
print "username is ", email, "password is ", password
user = auth.authenticate(username=email, password=password)
if user is not None:
auth.login(request, user)
return HttpResponseRedirect('/loggedin/')
else:
return HttpResponseRedirect('/invalid/')