实现用户登录和退出

实现用户登录成功并将用户名存储到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/>&nbsp;&nbsp;码:<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/即可
在这里插入图片描述
在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_46329906/article/details/116653427