Flask目录结构路由重定向简单实例讲解——轻量级的 Python Web 框架

news2024/9/21 19:35:03

假设一个flask目录结构如下:

my_flask_app/
│
├── app.py
├── routes/
│   ├── __init__.py
│   ├── ZhejiangProvince/
│   │   ├── __init__.py
│   │   ├── la.py
│   │   └── el.py
│   ├── GuangdongProvince/
│   │   ├── __init__.py
│   │   ├── la.py
│   │   └── el.py
│   ├── wia.py
├── static/
│   ├── css/
│   ├── js/
│   ├── img/
│   │   ├── LA.png
│   │   ├── EL.png
│   └── ...
├── templates/
│   ├── index.html
│   ├── layout.html
│   ├── ZhejiangProvince/
│   │   ├── la.html
│   │   ├── el.html
│   ├── GuangdongProvince/
│   │   ├── la.html
│   │   ├── el.html
│   └── ...
├── instance/
│   ├── config.py
├── config.py
├── requirements.txt
├── venv/
└── README.md

 我们关心的是在index.html中点击图标或文字怎么跳转到另一个html页面。

这就需要两个东西:蓝图实例蓝图名称

Step1:创建蓝图实例、定义蓝图中的路由

from flask import Blueprint

# 创建蓝图实例
zj_la_bp = Blueprint('zj_la', __name__)

@zj_la_bp.route('/LA', methods=['GET', 'POST'])
def LA():
    if request.method == 'POST':
        # 处理表单提交的代码
        pass
    return render_template('ZhejiangProvince/la.html')

'zj_la_bp' 是蓝图实例的变量名,用于在 Python 代码中引用和操作蓝图。
'zj_la' 是蓝图的名称字符串,用于标识蓝图并在生成 URL 时使用。 

关于 'zj_la_bp'和'zj_la' 的使用,可以简单记为:在前端使用'zj_la',在后端使用zj_la_bp'。
(这里在前端和在后端是指在关于前端的代码中和在关于后端的代码中)。

在前端使用'zj_la',在后端使用zj_la_bp'。:

例如:
  在后端:
     @zj_la_bp.route('/LA', methods=['GET', 'POST'])
  在前端:
     return redirect(url_for('zj_la.LAdocxGenerate'))
     <a href="{{ url_for('zj_la.LA') }}">

 

Step2:在 app.py 中注册蓝图:

from flask import Flask, redirect, url_for, render_template
from routes.ZhejiangProvince.la import zj_la_bp

app = Flask(__name__)
app.secret_key = 'your_secret_key'

# 注册蓝图并指定 URL 前缀
app.register_blueprint(zj_la_bp, url_prefix='/zj/la')

@app.route('/')
@app.route('/index')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

上述代码就会有一个URL:http://yourdomain.com/zj/la

 

Step3:在 index.html 模板中使用 url_for 函数生成 URL

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Index Page</title>
</head>
<body>
    <div class="index">
        <div class="LA">
            <!-- ************************************************************** -->
            <a href="{{ url_for('zj_la.LA') }}">
                <img src="{{ url_for('static', filename='img/LA.png') }}" alt="LA">
                <p>浙江省xxxx</p>
            </a>
            <!-- ************************************************************** -->
        </div>
    </div>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1964954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常见服务限流方法

一、令牌桶算法&#xff08;Token Bucket&#xff09; 原理其实很简单&#xff0c;就是设置同一时刻服务器能处理请求的最大数量&#xff0c;如果超过这个数据&#xff0c;则需要等待&#xff0c;或者不处理请求。相当于设置最大并发量&#xff0c;但是细节是&#xff0c;还设…

解决nginx端口转发后,获取不到真实IP问题

文章目录 1&#xff0c;设置nginx端口转发1.2&#xff0c;无法获取客户端真实IP 2&#xff0c;nginx配置文件增加配置&#xff0c;保留客户端信息2.2&#xff0c;可以看到真实IP信息 1&#xff0c;设置nginx端口转发 location /AWAPI/ {proxy_pass http://172.28.43.19:9607; …

组件化开发

1.组件化开发 组件化&#xff1a;一个页面可以拆分成一个个组件&#xff0c;每个组件有着自己独立的结构[html]、样式[css]、行为 [js]。好处&#xff1a;便于维护&#xff0c;利于复用 → 提升开发效率。组件分类&#xff1a;普通组件、根组件。比如&#xff1a;下面这个页面…

二级MySQL(十二)——分组聚合查询

首先整理常用的聚合函数&#xff1a; 函数名说明COUNT&#xff08;*&#xff09;记录数COUNT&#xff08;列名&#xff09;一列的记录数MAX&#xff08;列名&#xff09;一列的最大值 MIN&#xff08;列名&#xff09; 一列的最小值 SUM&#xff08;列名&#xff09;一列…

M12电连接器航插插座L-code

M12电连接器概述 M12电连接器是一种广泛应用于工业自动化、传感器、仪器仪表、数据通信和控制系统等领域的圆形连接器。它的核心特点在于其小巧的尺寸、强大的多信号传输能力和出色的防水性能&#xff0c;使其成为众多工业应用的首选。M12连接器通常具有3至12个引脚&#xff0…

redis主从复制、哨兵模式、集群

redis集群 高可用 redis集群的三种模式&#xff1a; 1.主从复制&#xff08;奇书 3台 一主两从&#xff09; 2.哨兵模式 &#xff08;3台 一主两从&#xff09; 3.cluster &#xff08;集群 6 333&#xff09; 主从复制&#xff1a;喝MySQL的主从复制类似&#xff0c;主可以写…

vite创建Vue2项目(配图详细)

参考文章&#xff1a;vite项目生成vue3并引入element-ui vite脚手架生成vue项目及其配置_viteconfig配置-CSDN博客 Vite 默认支持 Vue 3&#xff0c;但你也可以使用 Vite 来搭建 Vue 2 的项目。不过&#xff0c;这需要一些额外的配置&#xff0c;因为 Vue 2 不支持原生的 ES …

【电子通识】什么是SIM卡/eSIM?

什么是SIM卡。 1991年&#xff0c;世界第一张SIM卡被德国捷德公司开发&#xff0c;当时的SIM卡非常大&#xff0c;和银行IC卡一样&#xff1a; SIM卡的全名是“用户识别模块”&#xff08;Subscriber Identity Module&#xff09;&#xff1a;这块镀金的电路芯片拥有身份识别功…

请大家监督:我要开启Python之路,首要任务最简单的搭建环境

任务说明&#xff1a; 如上图所示&#xff0c;Python稳稳第一&#xff0c;为何&#xff1f;因为Python可以做很多事情&#xff0c;比如&#xff1a;Web开发&#xff0c;网络爬虫&#xff0c;软件开发、数据分析、游戏开发&#xff0c;金融分析&#xff0c;人工智能与机器学习&a…

Java每日面试题(事务相关)(day5)

目录 什么是事务&#xff1f;spring事务的实现方式事务失效的8种情况 什么是事务&#xff1f; 事务是一个操作序列&#xff0c;要么全部执行成功&#xff0c;要么全部执行失败。事务有四个重要特性&#xff0c;称为 ACID 特性&#xff1a; Atomicity&#xff08;原子性&#x…

从教学到分享,2024精选录屏工具

如果你在公司里承担会议记录的职责&#xff0c;那录屏这项技能你一定要学会。像录屏大师这样的工具可以帮你在远程会议中进行录屏操作&#xff0c;方便你后期整理会议内容。 1.福昕录屏大师 链接直达&#xff1a;https://www.foxitsoftware.cn/REC/ 这款录屏工具提供了多种…

自定义线程池(二)

上节回顾 在上一节当中&#xff0c;已经实现了一个线程池&#xff0c;在本节当中&#xff0c;我们需要添加拒绝策略。这里使用到了策略模式的设计模式&#xff0c;因为拒绝策略是多种的&#xff0c;我们需要将这个权利下放给调用者&#xff08;由调用者来指定我要采取哪种策略…

代码随想录算法训练营第41天|LeetCode 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II、123.买卖股票的最佳时机III

1. LeetCode 121. 买卖股票的最佳时机 题目链接&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/ 文章链接&#xff1a;https://programmercarl.com/0121.买卖股票的最佳时机.html#思路 视频链接&#xff1a;https://www.bilibili.com/…

微调基模型

该示例用的谷歌的gemma-2b-it模型 Gemma是Google的一系列轻量级、最先进的开源模型&#xff0c;基于用于创建Gemini模型的相同研究和技术构建。它们是文本到文本、仅解码的大型语言模型&#xff0c;提供英文、开源权重、预训练变体和指令调优变体。Gemma模型非常适合各种文本生…

微软蓝屏事件:网络安全与系统稳定性的深刻反思

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号&#xff1a;网络豆云计算学堂 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a; 网络豆的主页​​​​​ 写在前面 在数字化时代&#xff0c;软件更新已成为…

电测量数据交换DLMS∕COSEM组件第61部分:对象标识系统(OBIS)(下)

GB/T 17215.6的本部分规定了对象标识系统(OBIS)的总体结构并将测量设备中的所有常用数据项映射到其标识代码。OBIS为测量设备中的所有数据都提供唯一的标识符,不仅包括测量值,而且还包括仪表设备的配置或获取测量设备运行状态的抽象数据。 5.抽象对象(A=0) 5.1通用和服…

yolov10来了!用yolov10训练自己的数据集(原理、训练、部署、应用)

一、引言 YOLOv9还没热乎呢&#xff0c;YOLOv10就出来了&#xff0c;太卷了&#xff01;太快了&#xff01; 自今年2月YOLOv9发布之后&#xff0c; YOLO&#xff08;You Only Look Once&#xff09; 系列的接力棒传到了清华大学研究人员的手上。YOLOv10推出的消息引发了AI界的…

【第七天】TCP三次握手四次挥手 HTTP的keep-Alive和TCP的keepalive

TCP三次握手四次挥手 既然要了解这些&#xff0c;首先我们要清楚一个概念&#xff0c;半连接队列和全连接队列&#xff1a; 在TCP三次握手中&#xff0c;Linux内核会维护两个队列来管理连接请求。 这两个队列的存在是为了处理并发连接请求&#xff0c;确保服务端能够有效管理新…

设计模式17-适配模式

设计模式17-适配模式 动机定义与结构C代码推导总结应用具体应用示例 动机 在软件系统中由于应用环境的变化常常需要将一些现存的对象。放到新的环境中去应用。但是新环境要求的接口是这些现存对象所不满足的。那么这种情况下如何应对这种迁移的变化&#xff1f;如何既能利用现…

《零散知识点 · SpringBoot 整合邮件功能》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…