当前位置: 首页 > 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>
http://www.lryc.cn/news/414677.html

相关文章:

  • 破解PyCharm插件更新难题:让IDE焕发新生
  • cmake常用命令学习
  • K8S可视化管理平台KubeSphere
  • Bugku-CTF-聪明的php
  • 【MySQL进阶】MySQL主从复制
  • 本地部署文生图模型 Flux
  • 谷粒商城实战笔记-127-全文检索-ElasticSearch-整合-测试复杂检索
  • 解锁PyCharm:破解依赖库导入之谜
  • JSON-Viewer插件:json格式查看器
  • HDFS块信息异常,spark无法读取数据
  • TCP协议概述
  • SpringSecurity-3(认证和授权+SpringSecurity入门案例+自定义认证+数据库认证)
  • 英国AI大学排名
  • 渗透测试与高级攻防技术(二)网络安全技术的前沿探讨:渗透测试与高级攻防
  • Windows系统下安装mujoco环境的教程【原创】
  • 【秋招笔试】2024-08-03-科大讯飞秋招笔试题(算法岗)-三语言题解(CPP/Python/Java)
  • 2024华数杯数学建模竞赛选题建议+初步分析
  • 大模型的经典面试问题及答案
  • nodejs环境搭建
  • C#基础:LINQ表达式的单独定义和编译使用
  • 前端面试:八股文系列(一)
  • 设施农业“AutoML“时代:大模型自动调参,让农业算法模型更简单易用
  • LinkedList接口源码解读
  • nohup将代码放到后端运行查看nohup命令
  • MacOS的100个超实用技巧
  • 本地调试指引文档
  • 【C++】一堆数组 冒泡排序
  • [最短路SPFA]--启动!!!!!
  • 大模型是否潜在地进行多跳推理?
  • 人为什么不能长期待在家里?三个原因告诉你答案