上下文、钩子与请求生命周期
Flask Web 开发#Python全栈#第十阶段#Flask Web 开发#上下文、钩子与请求生命周期约 753 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
应用上下文与请求上下文分别提供什么?
追问 current_app、g、request 与 session 依赖哪些上下文?只创建应用对象是否就能随处访问这些代理?
current_app 为什么适合供业务模块和扩展访问当前应用?
追问 它与直接导入全局 app 有什么区别?为什么脱离应用上下文仍会报错?
g 的生命周期和用途是什么?
追问 常规请求中缓存当前用户或连接怎样使用?为什么它不是跨请求共享的持久全局存储?
before_request 可以完成哪些处理?
追问 加载用户、请求标识与输入前置检查如何组织?返回响应时,后续视图函数还会执行吗?
after_request 与 teardown_request 的职责有什么区别?
追问 追加响应头与释放资源应如何分配?异常路径和钩子自身失败为什么要求清理逻辑独立且稳健?
teardown_appcontext 如何帮助管理应用上下文资源?
追问 按需创建连接、缓存到 g 并在上下文结束时关闭,如何形成完整流程?未创建资源时怎样避免清理失败?
为什么在线程或后台任务中直接使用 request 可能失败?
追问 上下文绑定与原请求结束怎样影响访问?如何提取必要普通数据传给任务,而不是长期保留请求代理?
在脚本或命令中使用依赖 current_app 的功能,如何提供上下文?
追问
app.app_context() 与模拟请求上下文有什么区别?什么时候不应为了方便而伪造一个完整请求?Flask CLI 自定义命令适合哪些管理任务?
追问 初始化数据、导入文件与诊断配置怎样设计参数和失败反馈?怎样避免把管理任务暴露为普通公共接口?
为什么不能用全局字典可靠保存所有用户和请求状态?
追问 线程并发、多个进程、重启与数据增长分别产生什么问题?上下文局部数据和持久存储如何分工?
核对资料: Flask 应用上下文、Flask 请求上下文。