基于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>

最新文章

  1. od破解实例
  2. 客户端禁用cookies后session是否还起效果
  3. ajax中的post方法中回调函数不执行的问题
  4. cobbler之ks文件示例
  5. HTML+CSS笔记 CSS中级 颜色&长度值
  6. JDK源码学习系列03----StringBuffer+StringBuilder
  7. HTTP的REST服务简介
  8. Django----使用模板系统渲染博客页面、实现列表和详情页的跳转、前后跳转功能
  9. kNN算法:K最近邻(kNN,k-NearestNeighbor)分类算法
  10. kernel笔记——VFS
  11. Openresty 学习笔记(四)lualocks包管理器安装使用
  12. webpack2与promise在IE环境下
  13. Quartz.NET的简单任务管理类
  14. Vim——回顾整理
  15. debian 7.4 安装配置
  16. vmware虚拟机的tomcat启动以后,主机无法访问
  17. linux 下的常用操作命令
  18. Java基础—异常
  19. SP8093 JZPGYZ - Sevenk Love Oimaster 解题报告
  20. IAR仿真时绿色箭头一直指向汇编界面,而C界面没有

热门文章

  1. LightningChart 客户案例分享-DCC 环境工程
  2. bnu 4067 美丽的花环
  3. fzou 1759 Super A^B mod C
  4. Java CountDownLatch解析(上)
  5. IDEA 2017.2.2 环境下使用JUnit
  6. 如何实现监听 console.log
  7. GoJs实现流程管理图
  8. 推荐下:开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !
  9. python判断一个数字是整数还是浮点数&amp;判断整除
  10. 对一些ArcGIS for JS的API的一些理解