Django的远程主机管理系统的登陆模块代码
下面是一个使用Django框架编写的远程主机管理系统的登录模块的代码示例:
# views.py
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
from .forms import LoginForm
def user_login(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('dashboard') # 登录成功后跳转到仪表盘页面
else:
form.add_error(None, 'Invalid username or password.')
else:
form = LoginForm()
return render(request, 'login.html', {'form': form})
def user_logout(request):
logout(request)
return redirect('login') # 登出后跳转到登录页面
# forms.py
from django import forms
class LoginForm(forms.Form):
username = forms.CharField(label='Username', max_length=100)
password = forms.CharField(label='Password', widget=forms.PasswordInput)
<!-- login.html -->
{% extends 'base.html' %}
{% block content %}
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{% for field in form %}
<div class="form-group">
{{ field.label_tag }}
{{ field }}
{% if field.errors %}
<div class="text-danger">
{% for error in field.errors %}
<span>{{ error }}</span>
{% endfor %}
</div>
{% endif %}
</div>
{% endfor %}
<button type="submit" class="btn btn-primary">Login</button>
</form>
{% endblock %}
上述代码中,user_login函数处理登录请求,接受用户提交的表单数据并进行验证。如果验证成功,调用login函数登录用户,并重定向到仪表盘页面。如果验证失败,将错误信息添加到表单中,显示给用户。
user_logout函数用于处理登出请求,调用logout函数登出当前用户,并重定向到登录页面。
LoginForm类定义了登录表单的字段和验证规则。
login.html模板定义了登录页面的HTML结构,使用Bootstrap样式美化表单。使用{{ field.label_tag }}和{{ field }}渲染表单字段和标签,使用{{ field.errors }}渲染字段的错误信息
原文地址: http://www.cveoy.top/t/topic/iqsr 著作权归作者所有。请勿转载和采集!