·
日常教程 ·
274100
|
拦截器(Interceptor) |
过滤器(Filter) |
| 关键词 |
AOP、代理模式、反射机制、spring |
函数回调、servlet、web |
| 原理 |
反射机制 |
函数回调 |
| 容器 |
不依赖servlet |
依赖servlet |
| 作用范围 |
-
只能对action请求起作用
-
可以访问action上下文、值栈里的对象
|
-
可以对所有请求起作用,通过通配符可以保护页面、图片、文件等
-
无法访问action上下文
|
| 调用 |
在action生命周期中可以被多次调用 |
只能在容器初始化时被调用一次 |
应配置pytest显示RuntimeWarning并定位漏await的协程:在pyproject.toml中设python_warnings=["default::RuntimeWarning"],或命令行加-Wdefault::RuntimeWarning,再用IDE检查和mypy插件强制校验。 ...
before_request在每次请求进入Flask应用、到达视图函数前必定执行,不区分HTTP方法和路由,但默认不处理静态文件;它仅在WSGI层生效,不能修改response,只能读取request、设置g变量、抛异常或返回响应。 before_request什么时候执行? before_requ...
直接用bitarray因内存省两个数量级且速度快5–10倍;add()须用多个独立哈希函数;m、k需按n和p反推;__contains__必须检查全部k位才能避免假阴性。 为什么直接用bitarray而不是Python自带的list[bool] 因为布隆过滤器核心是位级操作,list[bool]每个...
布隆过滤器内存暴增主因是error_rate过低与capacity虚高,应设error_rate≥0.001、按实际增量估算capacity、强制URL归一化、避免多进程共享、上线前必须实测误判率。 pybloom_live初始化时内存暴增,怎么算才不炸? 直接写capacity=10000000+...
布隆过滤器适合海量数据去重因其仅用哈希函数和位数组判断存在性,内存固定且极小,如1亿URL仅需1.2GB(误判率0.1%),但存在假阳性、无假阴性,适用于先快速筛选再精确校验的场景。 布隆过滤器为什么适合海量数据去重 它不存原始数据,只用几个哈希函数+一个位数组做存在性判断,内存占用固定且极小。比如...
FastAPI中JWT认证应使用HTTPBearer获取Token并用jwt.decode()校验,密钥须从环境变量读取且确保两端一致;签发时需设exp、sub等字段,用datetime.utcnow()+timedelta;依赖注入get_current_user实现自动校验。 FastAPI里怎...
pybloom_live初始化易OOM因capacity与error_rate共同决定内存,建议error_rate≥0.001、按实际增量估算capacity、标准化URL、多进程独立BF+定期合并、关键URL二次校验。 pybloom_live初始化时内存预估不准,容易OOM 布隆过滤器本质是位...
Django自定义模板标签必须满足三条件:置于templatetags/目录、模块中声明register=template.Library()、文件名合法(如mytags.py);缺一则{%load%}静默失败,本质是未加载模块而非语法错误。 怎么在Django里写一个能用的自定义模板标签 直接能用...