django中cookie登录认证
时间:2020-05-28
本文章向大家介绍django中cookie登录认证,主要包括django中cookie登录认证使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
urls.py
"""cookiesession URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.11/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/', views.index, name='index'), url(r'^home/', views.home, name='home'),
# 登录 url(r'^login/', views.login, name='login'), ]
views.py
from django.shortcuts import render, HttpResponse, redirect # Create your views here. def loginAuth(func): def inner(request, *args, **kwargs): if request.COOKIES.get('isLogin') == 'true': return func(request, *args, **kwargs) else: return redirect('login') return inner @loginAuth def index(request): return render(request, 'index.html') @loginAuth def home(request): return render(request, 'home.html') def login(request): if request.method == 'GET': return render(request, 'login.html') else: if request.POST.get('uname') == 'xx' and request.POST.get('password') == '111': ret = redirect('home') ret.set_cookie('isLogin', 'true') return ret else: return HttpResponse('登录失败') # def index(request): # print(type(request.COOKIES.get('isLogin'))) # if request.COOKIES.get('isLogin'): # return render(request, 'index.html') # else: # return redirect('login') # def home(request): # is_login = request.COOKIES.get('k1') # if is_login == 'v1': # return render(request, 'home.html') # else: # return HttpResponse('login please!!!')
login.html
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> <title>Bootstrap 101 Template</title> </head> <body> <h1>你好,请登录!</h1> <form action="{% url 'login' %}" method="post"> {% csrf_token %} <label> 用户名:<input type="text" name="uname"> </label> <label> 密码:<input type="password" name="password"> </label> <button>登录</button> </form> </body> </html>
home.html
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> <title>Bootstrap 101 Template</title> </head> <body> <h1>你好,home!</h1> </body> </html>
index.html
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> <title>Bootstrap 101 Template</title> </head> <body> <h1>你好,index!</h1> </body> </html>
原文地址:https://www.cnblogs.com/godlove/p/12982533.html
- Docker系列教程05-容器常用命令
- 数据分析利器-NumPy
- 【LEETCODE】模拟面试-134-Gas Station
- Docker系列教程17-默认bridge网络中配置DNS
- Docker系列教程16-network命令
- 【LEETCODE】模拟面试-206. Reverse Linked List
- Eslint检测出的问题如何自动修复
- 【LEETCODE】模拟面试-215. Kth Largest Element in an Array
- Docker系列教程15-Docker容器网络
- 数据挖掘
- Docker系列教程14-Docker数据持久化
- Docker 学习系列二之基本管理
- Docker系列教程13-Docker可视化管理工具
- Ubuntu 16.04 安装VNC
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法