python全栈开发day71-ajax
一、django中间件
1 中间件的用处(针对请求和响应做全局的操作时)
可以做登录验证
访问限制
2. 自定义中间件,五个方法和三个要点
三个要点:
1.执行时间和执行顺序
2.参数
3.返回值
1) process_request(self,request)
1.注册顺序,在视图函数之前
2.参数request表示请求对象本身,和视图函数中是同一个对象
3.返回None就继续往后走,返回响应对象就从本中间件的process_response倒序返回
2) process_response(self,request,response)
1.注册的倒序,返回响应之后
2.request 请求对象,response:响应对象
3.必须返回响应对象
3) process_view(self,request,view_func,view_args,view_kwargs)
1.注册的顺序,视图函数之前,urls.py之后
2.view_func:将要执行的视图函数对象
3.返回None就继续往后走,返回响应对象就不往后走,而是倒序遍历process_response
4) process_template_response(self,request,response)
5) process_exception(self,request,exception) 3. csrf中间件源码分析
为什么要把验证csrf_token的逻辑写在process_view()中。
如果加在process_request中,就会每个视图函数进行验证,哪些需要csrf验证豁免的csrf_exampt就会不能豁免,写在process_view()中就可以进行相应的请求豁免操作。 4. 昨日作业
同一IP一分钟内访问超过3次拒绝访问
VISITED_RECORD = {}
class Throttle(MiddlewareMixin):
def process_request(self,request):
IP = request.META.get('REMOTE_ADDR')
now = time.time()
if IP not in VISITED_RECORD:
VISITED_RECORD[IP] = []
history = VISITED_RECORD[IP]
while history and now - history[-1]>60:
history.pop()
if len(history) > 3:
return HttpResponse('滚')
history.append(now)
二、ajax 对接django
http://wuchengyi.com/post/14/
python全栈开发day71-ajax的更多相关文章
- 巨蟒python全栈开发django11:ajax&&form表单上传文件contentType
回顾: 什么是异步? 可以开出一个线程,我发出请求,不用等待返回,可以做其他事情. 什么是同步? 同步就是,我发送出了一个请求,需要等待返回给我信息,我才可以操作其他事情. 局部刷新是什么? 通过jq ...
- 巨蟒python全栈开发django10:ajax&&登录认证
通过题目进行知识点回顾: 聚合查询 From django.db.models import Avg,Min,Max,F,Q,Count,Sum #查询书籍的平均值 Ret= Models.Book. ...
- Python全栈开发:Ajax全套
概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用 一个简单操作需要 ...
- python 全栈开发,Day99(作业讲解,DRF版本,DRF分页,DRF序列化进阶)
昨日内容回顾 1. 为什么要做前后端分离? - 前后端交给不同的人来编写,职责划分明确. - API (IOS,安卓,PC,微信小程序...) - vue.js等框架编写前端时,会比之前写jQuery ...
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- Python全栈开发【面向对象】
Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础三】
Python全栈开发[基础三] 本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
随机推荐
- Markdown中Latex 数学公式基本语法
原文地址:http://blog.csdn.net/u014630987/article/details/70156489 Markdown中Latex 数学公式基本语法 公式排版 分为两种排版: - ...
- MATLAB GUI对话框设计
原文地址:http://blog.csdn.net/shuziluoji1988/article/details/8532982 1.公共对话框: 公共对话框是利用windows资源的对话框,包括文件 ...
- java的小数比较反例
double num = 0.3; System.out.println(num); System.out.println(num - 0.2); System.out.println(num - 0 ...
- mongodb导入导出数据
导出 mongoexport -d DB_NAME -c COLLECT_NAME -o FILE_NAME 例:mongoexport -d db_test -c data_result -o da ...
- go import 使用方法记录
import "fmt" 最常用的一种形式 import "./test" 导入同一目录下test包中的内容 import f "fmt ...
- cache、session、cookie的区别
session把数据保存在服务器端,每一个用户都有属于自己的Session,与别人的不冲突就是说,你登陆系统后,你的信息(如账号.密码等)就会被保存在服务器上一个单独的session中,当你退出系统后 ...
- android开机动画(bootanimation)
Android开机动画有两种修改方法,android 2.0及之后,使用bootanimation程序显示开机画面,如需修改开机画面,不用修改代码,只需按格式要求做bootanimation.zip包 ...
- Vue项目构建开发笔记(vue-lic3.0构建的)
1.router.js里面 { path: '/about', name: 'about', // route level code-splitting // this generates a sep ...
- C# TTS 文字和英文
using System;using System.Globalization;using System.Linq;using System.Speech.Synthesis;using System ...
- restricted 模式及其 使用
什么是数据库的RESTRICTED 模式 注:以下内容来至:百度知道 --数据库受限模式,在这个模式下只有RESTRICTED SESSION 权限的人才可以登陆,一般用与数据库维护的时候使用. RE ...