flask Python:钩子函数shell_context_processor(上下文处理器)的使用

news/2024/5/14 8:41:52

一、请求上下文和应用上下文

什么是请求上下文和应用上下文?,在这里,了解到了一个词叫上下文处理器,通俗理解就是在一个请求中定义全局变量的。

每次启动Flask shell都需要导入数据库实例和模型,感觉繁琐又重复,那我们可以在程序中进行配置,让flask shell命令自动导入这些对象,这样在打开shell的时候就不用再导入这些对象,直接使用就可以了。这样就需要注册一个shell上下文处理器

二、shell上下文处理器(shell_context_processor)

@app.shell_context_processor 装饰器创建并注册一个shell上下文处理器,此函数必须返回数据,且只能是字典即使是空的字典。代码如下:

  @app.shell_context_processordef shell():return dict(app=app, db=db)

在这里插入图片描述

其他相关上下文处理器

同样地,如果有一些在很多模板中都要用到的变量,那么为了避免重复动作,可以用context_processor方法,来定义常用的变量。此函数必须返回数据,且只能是字典即使是空的字典。
代码示例如下:

    @app.context_processordef inject_stage_and_region():light_theme = read_config().get('base', 'light_theme')dark_theme = read_config().get('base', 'dark_theme')return dict(light=light_theme + BOOTSTRAP_SUFFIX, dark=dark_theme + BOOTSTRAP_SUFFIX)

在这里插入图片描述


http://www.mrgr.cn/p/62128561

相关文章

Windows iscsicli 命令 参数

Windows iscsicli 命令 start iscsicpliscsicli /? Microsoft iSCSI Initiator版本10.0构建20348 iscsicli iscsicli AddTarget <目标名称> <目标别名> <目标门户地址> <TargetPortalSocket> <目标标志> &…

iscsicli 命令 参数

iscsicli 命令 start iscsicpliscsicli /? Microsoft iSCSI Initiator版本10.0构建20348 iscsicli iscsicli AddTarget <目标名称> <目标别名> <目标门户地址> <TargetPortalSocket> <目标标志> <Persi…

基于Java实现宠物领养救助交流平台设计和实现

基于Java实现宠物领养救助交流平台设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源码联…

(一)甘特图部分

目前甘特图样式 目前更新到支持显示订单完成进度,支持下钻四级显示信息。 重要代码 (一)颜色部分1 //进度条颜色2 gantt.templates.task_text = function (start, end, task) {3 let parentState = getColorForTask1(task, end);4 let sonSta…

IDEA 上传 git 项目

1. 创建项目:菜单栏 找到 VCS ,创建 git 仓库,此时代码变红了 2. 右击项目 找到 GIT --> Add,代码绿了 3. 存于本地:右击项目 找到 Git --> Commit Directory... 4. 此时存在本地git,编辑后点击 Commit出错了,不重要。commit后代码白了。5. 拉取代码,右击项目…

基于unbantu的nginx的配置

目录 前言: 1.安装nginx并进行测试 1.1使用nginx -v 命令查看版本 1.2开启服务 查看端口 1.3测试 2.nginx的静态资源访问配置 2.1创建静态资源存放的目录 2.2写入目录中测试文件对应的内容 2.3修改配置文件 2.4 测试 3.虚拟主机配置 3.1创建目录 3.2写入测试…

JavaEE 初阶篇-深入了解多线程等待与多线程状态

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 线程等待 1.1 线程等待 - join() 方法 1.1.1 main 线程中等待多个线程 1.1.2 main 线程等待 t2 线程且t2 线程等待 t1 线程 1.1.3 其他线程阻塞等待 main 线程 1.…

SpringBoot项目接入Nacos的实现步骤

前言 项目中没有使用nacos官方提供的方式使用SpringBoot的集成方式来进行集成,而是使用了Alibaba Spring Cloud的依赖包进行集成。 原因是因为官网提供的SpringBoot集成方式中,同时使用配置中心和服务发现功能,会使得服务发现功能配置的部分属性冲突不生效。最直接的就是配置…

移动平台实时动态多点光源方案:Cluster Light

一、什么是 Cluster Light&#xff0c;它具体如何实现多点光源效果&#xff1f; 对于移动设备&#xff0c;如何支持场景中大量的实时点光源一直以来都是比较棘手的问题&#xff0c;因此对于过去&#xff0c;往往有如下两种常规方案&#xff1a; 静态点光源直接烘焙&#xff0…

UE4 C++ Widget的NativeConstruct 与 NativePreConstruct

构造函数 由于Widget是由UE的反射系统创建的,其生命周期由UE引擎管理,所以并不存在构造函数,UE为Widget类定义了两个虚函数NativeConstruct 与 NativePreConstruct来充当构造函数的作用。而这两个函数的调用都必须在Widget被实例化之后才能进行调用 如何在Widget中获取角色 …

【AIGC】如何在Windows/Linux上部署stable diffusion

文章目录 整体安装步骤windows10安装stable diffusion环境要求安装步骤注意事项参考博客其他事项安装显卡驱动安装cuda卸载cuda安装对应版本pytorch安装git上的python包Q&A linux安装stable diffusion安装anaconda安装cudagit 加速配置虚拟环境挂载oss&#xff08;optional…

P1484 种树 题解

P1484 种树有 \(n\) 个坑。第 \(i\) 个坑种树的价值是 \(c_i\),相邻坑不能同时种。可以种 \(k\) 颗树,求最大价值。模拟费用流,建图类似这样: 中间两层结点之间有 \(7\) 条边,表示 \(n=7\) 的情况。相邻两条边,例如 \(1,2\) 总流入量为 \(1\),\(2,3\) 总流出量为 \(1\),…

新穗青少年开展“小小公民科学家”科考活动探索生物多样性

为帮助“新穗”青少年了解本土文化&#xff0c;提升个人知识面和动手能力&#xff0c;贯彻落实《未成年人保护法》《家庭教育促进法》《广东省生态环境教育条例》等有关文件精神&#xff0c;3月24日&#xff0c;天河区绿日同学公益服务促进会联合华南农业大学农潮工作室、广州城…

Sql Server设置用户只能查看并访问特定数据库

1.新建登录用户以管理员身份登陆数据库(权限最高的身份如sa),点击安全性->登录名,右键新建登录名,输入登录名和密码,取消强制实施密码策略。 2.将服务器角色设置为public 3.将public服务器角色的属性->取消查看所有数据库的权限点击安全性->服务器角色->publ…

华为流量整形配置

组网需求 如图1所示&#xff0c;企业网内部LAN侧的语音、视频和数据业务通过Switch连接到RouterA的Eth2/0/0上&#xff0c;并通过RouterA的GE3/0/0连接到WAN侧网络。 不同业务的报文在LAN侧使用802.1p优先级进行标识&#xff0c;在RouterA上根据报文的802.1p优先级入队列&…

electron 开发

教程:https://www.electronjs.org/zh/docs/latest/tutorial/quick-start 系统:Windows 10 工具: PowerShell 文件目录:index.html main.js package.json 和 preload.js 是手动添加的,其余是编译生成的index.html<!DOCTYPE html> <html><head><meta c…

2024最新版克魔助手抓包教程(9) - 克魔助手 IOS 数据抓包

引言 在移动应用程序的开发中&#xff0c;了解应用程序的网络通信是至关重要的。数据抓包是一种很好的方法&#xff0c;可以让我们分析应用程序的网络请求和响应&#xff0c;了解应用程序的网络操作情况。克魔助手是一款非常强大的抓包工具&#xff0c;可以帮助我们在 Android …

vue3+ts白屏问题解决

文章目录 打开白屏解决方法可能出现问题使用base导致的使用baseUrl导致的 注意点vue3ts白屏问题知识分享 打开白屏 解决方法 在vue.config.js页面 添加publicPath:./, const { defineConfig } require(vue/cli-service)module.exports defineConfig({ transpileDependenci…

客快物流大数据项目(八十一): Kudu原理 有用 看1

​Kudu原理 一、表与schema Kudu设计是面向结构化存储的,因此Kudu的表需要用户在建表时定义它的Schema信息,这些Schema信息包含:列定义(含类型) Primary Key定义(用户指定的若干个列的有序组合)数据的唯一性,依赖于用户所提供的Primary Key中的Column组合的值的唯一性。…