实现用户登录成功并将用户名存储到Session中;退出,则清空Session
创建应用
使用python .\manage.py startapp uesr
创建应用
配置HTML
与主目录同级创建templates
目录并创建index.html和login.html
index.html内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>陈十一yi-Document</title>
</head>
<body>
欢迎您:{
{name}}
<footer><a href="/logout/">退出</a></footer>
</body>
</html>
login.html内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>陈十一yi-Document</title>
</head>
<body>
<form action="/login/" method="POST">
{% csrf_token %}
用户名:<input type="text" name="name" /><br/>
密 码:<input type="password" name="pwd" /><br/>
<input type="submit" value="登录" />
</form>
</body>
</html>
配置setting.py
添加应用和页面存放路径
配置视图
在应用的views.py
中添加
from django.shortcuts import render,redirect
from django.http import HttpResponse
def index(request):
return render(request,'index.html')
def login(request):
if request.method=="GET":
if request.session.get('uname'):
return render(request,'index.html',{
"name":request.session.get('uname')})
return render(request, "login.html")
else:
name=request.POST.get('name')
pwd=request.POST['pwd']
if name=="陈十一yi" and pwd=="011":
request.session['uname'] = name
return render(request,'index.html',{
"name":request.session.get('uname')})
else:
print("用户名或密码错误")
return redirect("/login/")
def logout(request):
request.session['uname'] = None
request.session.clear()
return redirect("/login/")
配置路由
在urls.py
中添加
from django.contrib import admin
from django.urls import path
from uesr import views
urlpatterns = [
path('admin/', admin.site.urls),
path('login/', views.login),
path('index/', views.index),
path('logout/', views.logout),
]
验证
使用python .\manage.py runserver
启动项目在web输入http://127.0.0.1:8000/login/
即可