当前位置: 首页 > news >正文

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

假设一个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':# 处理表单提交的代码passreturn 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_bpapp = 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>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【数据结构】——堆的实现与算法
  • ElasticSearch父子索引实战
  • 怎么用U盘重装系统
  • ansible笔记
  • go 语言踏出第一步
  • 【Stable Diffusion】(基础篇七)—— lora
  • AI-WEB-1.0 靶机
  • 2024年8月1日 十二生肖 今日运势
  • 库文件的制作和makefile文件操作基础实现
  • 尚品汇-CompletableFuture异步编排-优化商品详情页(二十五)
  • 【前端 08】简单学习js字符串
  • react中外部传入的属性如果在外部改变,组件内如何得知并作出响应?
  • stm32_按键消抖_代码与流程分析
  • ShardingSphere-Jdbc + Spring Security + Redis 实现简单JWT认证
  • 利用python检查磁盘空间使用情况
  • python3.6+scrapy+mysql 爬虫实战
  • (三)从jvm层面了解线程的启动和停止
  • 2018一半小结一波
  • 3.7、@ResponseBody 和 @RestController
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • C++类的相互关联
  • Python 基础起步 (十) 什么叫函数?
  • Python实现BT种子转化为磁力链接【实战】
  • Redash本地开发环境搭建
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 后端_ThinkPHP5
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 深度学习中的信息论知识详解
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​一些不规范的GTID使用场景
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (1)Android开发优化---------UI优化
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (23)Linux的软硬连接
  • (8)STL算法之替换
  • (C语言)二分查找 超详细
  • (function(){})()的分步解析
  • (二十三)Flask之高频面试点
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)setTimeout 和 setInterval 的区别
  • (转)树状数组
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .ai域名是什么后缀?
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .Net 6.0 处理跨域的方式
  • .Net Remoting常用部署结构
  • .NET 常见的偏门问题
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET 指南:抽象化实现的基类