django - 我将如何在 django 中实现锁屏登录
问题描述
我有一个锁屏页面,它只包含一个密码字段(INPUT)和密码字段上方的用户名图像。请记住,锁定屏幕与登录页面不同。
请注意:- 登录表单需要用户名和密码,而锁定屏幕表单只需要密码,因为用户实际上并没有注销,但据我所知,它保存在某个地方。
这是简单的登录功能view.py
def lockscreen(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('core:dashboard')
else:
messages.info(request, 'Username OR Password is incorrect!')
context = {}
return render(request, 'accounts/lockscreen.html', context)
html
<div class="auth-form-transparent text-left p-5 text-center">
<img src="{% static 'images/faces/face15.jpg' %}" class="lock-profile-img" alt="img">
<form class="pt-5" method="POST">
{% csrf_token %}
<div class="form-group">
<label for="examplePassword1">Password to unlock</label>
<input type="password" name="password" class="form-control text-center" id="exampleInputPassword" placeholder="Password">
</div>
<div class="mt-5">
<button type="submit" value="Login" class="btn btn-block btn-gradient-primary btn-lg font-weight-medium auth-form-btn" >Unlock</button>
</div>
<div class="mt-3 text-center">
<a href="{% url 'login' %}" class="auth-link">Sign in using a different account</a>
</div>
</form>
</div>
表格.py
class CreateUserForm(UserCreationForm):
username = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder':'User Name ...'}))
password1 = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder':'Password ...'}))
password2 = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder':'Confirm Password ...'}))
email = forms.CharField(max_length=255, widget=forms.EmailInput(attrs={'class': 'form-control', 'placeholder':'E-mail ...'}))
name = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder':'Full Name ...'}))
phone = forms.CharField(max_length=255, widget=forms.NumberInput(attrs={'class': 'form-control', 'placeholder':'Phone Number ...'}))
account_type = forms.ChoiceField(choices = ACCOUNT_TYPE, widget=forms.Select(attrs={'class': 'form-control', 'placeholder':'Phone Number ...'}))
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2']
任何想法如何实现这种情况。谢谢
解决方案
当他登录时,您可以将用户名保存在会话中。
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Sessions
有了这个,您可以在锁屏功能中访问用户名。
推荐阅读
- java - 我需要了解样本中的 nEpoch 是什么
- airflow - 重新处理 Airflow 的历史数据
- c# - 如何访问 Blazor Web Assembly(客户端)中的服务或从实用程序类处理依赖注入?
- python - MemoryError((462855, 4998), dtype('uint8'))
- python - 读取带有 IP 地址列表的文本文件并建立 curl 连接
- sql-server - SSRS 2017 多选参数不适用于某些用户
- node.js - 将express与ejs一起使用时如何从磁盘或内存中加载资源
- javascript - 点击后如何动态更改css?然后再次单击返回默认值?
- c# - WPF Thread dead lock
- maven - 开发人员通常如何将 Docker 与 Java Maven 项目和 AWS EC2 一起使用?