讲师中心 微信公众号
AI工具推荐 视频效率加速

Jinja2 中动态高亮当前页面导航项的完整实现方案

秋雪大大_8538

秋雪大大_8538

发布时间:2026-02-08 13:18:32

|

425人浏览过

|

来源于php中文网

原创

Jinja2 中动态高亮当前页面导航项的完整实现方案

在 flask + jinja2 项目中,可通过 `request.endpoint` 结合条件渲染,在 base.html 的侧边栏中为当前访问页面的菜单项动态添加 `.active` 类,实现 css 样式切换,无需为每个子模板重复定义导航结构。

要在 base.html 中实现侧边栏菜单项(如 Dashboard、Feature1、Feature2)根据当前页面自动高亮,核心思路是:利用 Flask 的 request.endpoint 获取当前请求对应的视图函数名,并在 Jinja2 模板中用 {% if %} 判断匹配,动态注入 CSS 类。

首先,在你的全局样式表(如 static/css/style.css)中定义高亮样式:

.sidebar-nav a {
    display: block;
    padding: 10px 16px;
    color: #333;
    text-decoration: none;
}

.sidebar-nav a.active {
    background-color: #007bff;
    color: white;
    font-weight: bold;
}

然后,在 base.html 的侧边栏部分(例如

Html2md
Html2md

使用 Readability + Turndown 将 HTML 页面转换为干净的、Agent 友好的 Markdown。去除导航栏、广告、页脚、Cookie 横幅、社交按钮等干扰元素。支持 URL...

下载
<nav class="sidebar-nav">
  <a 
    class="{% if request.endpoint == 'dashboard' %}active{% endif %}" 
    href="{{ url_for('dashboard') }}"
  >Dashboard</a>

  <a 
    class="{% if request.endpoint == 'feature1' %}active{% endif %}" 
    href="{{ url_for('feature1') }}"
  >Feature 1</a>

  <a 
    class="{% if request.endpoint == 'feature2' %}active{% endif %}" 
    href="{{ url_for('feature2') }}"
  >Feature 2</a>
</nav>

⚠️ 注意事项:

  • 确保你的 Flask 路由使用了明确的 endpoint 名称(默认即函数名)。若手动指定了 endpoint= 参数(如 @app.route('/f1', endpoint='feat_one')),则模板中需对应写 request.endpoint == 'feat_one';
  • request 对象在 Jinja2 中默认可用,但需确认已启用 flask 的 request 上下文(通常无需额外配置);
  • 若使用蓝图(Blueprint),endpoint 会带前缀,例如 admin.dashboard,此时判断应为 {% if request.endpoint == 'admin.dashboard' %};
  • 更健壮的做法是封装为宏或自定义过滤器,但对简单项目,内联条件判断已足够清晰高效。

通过该方案,所有继承 base.html 的子模板(如 dashboard.html、feature1.html)无需修改导航逻辑,即可自动获得精准的当前页高亮效果——真正实现“一次定义、处处生效”的 DRY(Don’t Repeat Yourself)原则。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

相关专题

更多
flask框架如何搭建
flask框架如何搭建

搭建步骤:1、安装Python和Pip;2、创建虚拟环境;3、安装Flask;4、创建Flask应用;5、运行应用;6、访问应用。想了解更多flask框架的相关内容,可以阅读本专题下面的文章。

3915

2024.06.27

Python Flask框架
Python Flask框架

本专题专注于 Python 轻量级 Web 框架 Flask 的学习与实战,内容涵盖路由与视图、模板渲染、表单处理、数据库集成、用户认证以及RESTful API 开发。通过博客系统、任务管理工具与微服务接口等项目实战,帮助学员掌握 Flask 在快速构建小型到中型 Web 应用中的核心技能。

6004

2025.08.25

Python Flask Web框架与API开发
Python Flask Web框架与API开发

本专题系统介绍 Python Flask Web框架的基础与进阶应用,包括Flask路由、请求与响应、模板渲染、表单处理、安全性加固、数据库集成(SQLAlchemy)、以及使用Flask构建 RESTful API 服务。通过多个实战项目,帮助学习者掌握使用 Flask 开发高效、可扩展的 Web 应用与 API。

316

2025.12.15

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

4156

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

306

2025.12.06

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

120

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

60

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

60

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

40

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 6.1万人学习

CSS教程
CSS教程

共754课时 | 99万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn