1. 程式人生 > >基於session和cookie的登錄驗證(CBV模式)

基於session和cookie的登錄驗證(CBV模式)

doc app cookie ret bject project objects onf meta

基於session和cookie的登錄驗證(CBV模式)

urls.py

"""cookie_session URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path(‘‘, views.home, name=‘home‘)
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path(‘‘, Home.as_view(), name=‘home‘)
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path(‘blog/‘, include(‘blog.urls‘))
""" from django.contrib import admin from django.urls import path from cookie import views urlpatterns = [ path(admin/, admin.site.urls), path(login_CBV/,views.Login_CBV.as_view()), path(index_CBV/,views.Index_CBV.as_view()), ]

views.py

from django.shortcuts import render, redirect
from .models import User from django import views class Login_CBV(views.View): def get(self, request, *args, **kwargs): msg = ‘‘ return render(request, login.html, {msg: msg}) def post(self, request, *args, **kwargs): print(44444) name = request.POST.get("
user") pwd = request.POST.get("pwd") c = User.objects.filter(user=name, pwd=pwd).count() if c: print(123123) request.session[is_log] = 333 request.session[username] = name return redirect(/index_CBV/) else: msg = 用戶名或密碼有誤 return render(request, login.html, {msg: msg}) class Index_CBV(views.View): def get(self, request, *args, **kwargs): if request.session.get(is_log, None): user = request.session.get(username) return render(request, index.html, {user: user}) else: return redirect(/login_CBV/)

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
歡迎 {{ user }}!
</body>
</html>

login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>
</head>
<body>
<form action="/login_CBV/" method="post">
    {% csrf_token %}
    <div>
        <laber for="user">用戶名</laber>
        <input id="user" type="text" name="user"/>
    </div>
    <div>
        <laber for="pwd">密碼</laber>
        <input id="pwd" type="password" name="pwd">
    </div>
    <div>
        <input type="submit" value="登錄">
    </div>
</form>
</body>
</html>

基於session和cookie的登錄驗證(CBV模式)