Django操作cookie实例
cookie项目文件:
templates模板:
login.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<div>
用户名:<input type="text" id="username"><br>
密码:<input type="password" id="password"> <br>
<button id="submit">登录</button><pan id="warning" style="color: red"></pan>
{% csrf_token %}
</div>
</body>
<script src="{% static 'jquery-3.4.1.js' %}"></script>
<!--<script src="{% static 'js/login.js' %}"></script>--><!--ajax中有url的反向解析,只能放在html模板中-->
<script>
$(function () {
$('#submit').click(function () {
$.ajax({
url:"{% url 'login' %}",
type:'post',
data:{
username:$('#username').val(),
password:$('#password').val(),
csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),//可以直接放在headers里边
},
success:function (response) {
if (response.status===0){
//$('#submit').after('<span><i>账号或密码有误</i></span>')
$('#warning').text('账号或密码有误')
}else if (response.status===1){
location.href=response.url
}
}
})
})
});
</script>
</html>
login.html
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<div>
<h1>欢迎来到首页</h1>
</div>
<a href='{% url 'more' %}'>more</a>
</body>
</html>
index.html
more.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>more</title>
</head>
<body>
<div><h1>更多信息</h1></div>
</body>
</html>
more.html
viwes.py
from django.shortcuts import render, HttpResponse, redirect
from django.urls import reverse
from django.http import JsonResponse #cookie的使用,更多的用session def login(request):
if request.method == 'GET':
return render(request, 'login.html')
elif request.method == 'POST':
name = request.POST.get('username')
psd = request.POST.get('password') if name == 'yang' and psd == '':
dic = {'status': 1, 'url': reverse('index')}
rep = JsonResponse(dic)
rep.set_cookie('login', True)
rep.set_cookie('name', name)
else:
dic = {'status': 0, 'url': reverse('login')}
rep = JsonResponse(dic)
return rep #(1)普通视图函数内部检验登录状态
'''
#登陆成功之后才能访问主页
def index(request):
# print(request.COOKIES)
if request.COOKIES.get('login'):
return render(request, 'index.html')
else:
return redirect('login') # 登录成功之后才能访问
def more(request):
if request.COOKIES.get('login'):
return render(request, 'more.html')
else:
return redirect('login')
''' #(2)用装饰器实现状态检验 # 登录状态认证装饰函数
def login_auth(func):
def inner(request):
if request.COOKIES.get('login'):
return func(request)
else:
return redirect('login')
return inner @login_auth
def index(request):
return render(request, 'index.html') @login_auth
def more(request):
return render(request, 'more.html')
views.py
urls.py
from django.conf.urls import url
from django.contrib import admin
from app01 import views urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login', views.login, name='login'),
url(r'^index/', views.index, name='index'),
url(r'^more/', views.more, name='more'),
]
urls.py
Django操作cookie实例的更多相关文章
- 在pycharm中批量插入表数据、分页原理、cookie和session介绍、django操作cookie
昨日内容回顾 ajax发送json格式数据 ''' 1. urlencoded 2. form-data 3. json ''' 1. ajax $.ajax({ data: JSON.stringi ...
- Django 操作Cookie与Session
目录 Cookie Session Django中操作Cookie 基本操作 基于cookie的登录装饰器 Django中操作Session 基本操作 Session流程解析 基于session的登录 ...
- Django(33)Django操作cookie
前言 cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第一次登录 ...
- django操作cookie和session
一.cookie:保存在客户端浏览器上的键值对 Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会 ...
- Django操作session实例
session项目文件: templates模板: login.html {% load static %} <!DOCTYPE html> <html lang="en& ...
- Django操作cookie
浏览器清空cookie快捷键:ctrl+shift+delete,cookie中包含csrf认证信息 获取Cookie request.COOKIES['key'] request.COOKIES.g ...
- 12 Django之Cookie和Session
一.什么是Cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接 ...
- {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session
Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...
- [py]flask操作cookie&django的seesion和cookie机制
浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...
随机推荐
- php 全局变量和超全局变量
global 全局变量(在当前页面全部地方有效) $GLOBALS['name'] 超全局变量(在整个网站全部地方有效) 一个包含了全部变量的全局组合数组.变量的名字就是数组的键.还有_GET,_PO ...
- ubuntu(物理机)连接ARM开发板
非虚拟机 ubuntu下连接开发板 首先安装超级终端minicom sudo apt-get install minicom 安装完minicom以后,需要将开发板和电脑进行物理连接.需要使用一条网线 ...
- 标准库模块time,datetime
在Python中,通常有这几种方式来表示时间: 1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素. 由于Python的time模块实现主要调用C库,所以各个平台可能有所 ...
- Eclipse Mac OS版 卸载svn插件subclipse
点击Eclipse -> About Eclipse 在打开的窗口中点击Installation Details(安装细节) 在Installed Software标签窗口中,选中Subclip ...
- 高性能服务器开发基础系列 (二)Reactor模式
系列目录 第01篇 主线程与工作线程的分工 第02篇 Reactor模式 第03篇 一个服务器程序的架构介绍 第04篇 如何将socket设置为非阻塞模式 第05篇 如何编写高性能日志 第06篇 关于 ...
- JS异步与同步
这里展示一个操作场景:需要对数据进行异步处理,但这次操作可能会失败,所以需要定期对数据进行再次处理,直至处理成功. 实现:手动触发的处理以及定期触发的处理,是相同的,即可以抽取出来成一个公共函数,定期 ...
- opencv-11-中值滤波及自适应中值滤波
开始之前 在上一篇我们实现了读取噪声图像, 然后 进行三种形式的均值滤波得到结果, 由于我们自己写的均值滤波未作边缘处理, 所以效果有一定的下降, 但是总体来说, 我们得到的结果能够说明我们的算法执行 ...
- 百度Openrasp开源的应用运行时自我保护产品,安装教程。
第一步: 下载最新版本的安装包 https://packages.baidu.com/app/openrasp/release/latest/rasp-php-linux.tar.bz2 解压到目录: ...
- 疯子的算法总结14--ST算法(区间最值)
借助倍增和动态规划可以实现O(1)的时间复杂度的查询 预处理: ①区间DP 转移方程 f[i][j] = min(MAX同理)(f[i][j - 1],f[i + ][j - 1]) f[i] ...
- UVA-1 #1. A + B Problem
给你两个数 aa 和 bb,请输出他们的和. 输入格式 一行,两个用空格隔开的整数 aa 和 bb. 输出格式 一个整数,表示 a+ba+b. 样例一 input 2 3 output 5 限制与约定 ...