用户登录/退出 功能实现
1、创建一个app来管理登录和退出功能
python manage.py startapp sysinfo
2、编写登录页面及退出页面的html
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TestPlatform</title>
<style type="text/css">
body{
text-align: center;
}
</style>
</head>
<body>
<div>
<h1>自动化测试平台</h1>
<form id='login' method="post" action="/sysinfo/login/">
{% csrf_token %}
<br>
<div>
<div>用户名:<input type="text" name="username" placeholder="输入用户名"></div>
<br>
<div>密 码:<input type="text" name="password" placeholder="输入密码"></div>
<br>
<button style="width: 238px" type="submit">登录</button>
</div>
{{ error }}
</form>
</div>
</body>
</html>
home.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TestPlatform</title>
<style type="text/css">
span#welcome{
position: absolute;
right: 50px;
text-align: right;
}
span#logout{
position: absolute;
right: 10px;
}
</style>
</head>
<body>
<ul class="nav">
<span id="welcome" >欢迎,{{ user }}! </span>
<span id="logout"><a href="/sysinfo/logout">退出</a></span>
</ul>
</body>
</html>
3.编写登录及退出的视图
(sysinfo/views.py)
from django.contrib import auth
from django.http import HttpResponseRedirect
from django.shortcuts import render
# Create your views here.
def login(request): # 登录
if request.POST:
username = password = ''
username = request.POST.get('username')
password = request.POST.get('password')
user = auth.authenticate(username=username, password=password)
if user is not None and user.is_active:
request.session['user'] = username
response = HttpResponseRedirect('/sysinfo/home')
return response
else:
return render(request, './sysinfo/login.html',{'error':'用户名或密码错'})
return render(request, './sysinfo/login.html')
def home(request): # 登录成功到主页
return render(request, "home.html")
def logout(request): # 退出返回到登录页面
return render(request, './sysinfo/login.html')
4.URL配置
url项目分配app应用url
项目urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('sysinfo/', include('sysinfo.urls')),
]
sysinfo urls配置
sysinfo/urls.py
from django.contrib import admin
from django.urls import path
from sysinfo import views
urlpatterns = [
path('login/', views.login),
path('home/', views.home),
path('logout', views.logout),
]
5.运行并展示
项目环境中运行:python manage.py runserver
浏览器打开:http://127.0.0.1:8000/sysinfo/login/