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

Flask模板渲染、静态文件配置、请求与响应全解

博客导语

纯字符串返回无法满足Web开发需求,真实项目需要HTML页面渲染、静态资源(图片/JS/CSS)加载、接收前端参数、自定义响应格式。本文详解Flask模板语法、静态文件配置、完整请求参数获取、多种响应返回方式,覆盖前端交互核心场景。


一、Flask项目规范目录结构

Flask默认约定目录,无需手动配置,框架自动识别:

  • templates:存放HTML模板文件(必须同名)

  • static:存放静态文件(css/js/图片)


二、模板渲染实战(Jinja2模板)

Flask默认使用Jinja2模板引擎,支持变量渲染、循环、判断、模板继承,是前端页面动态渲染核心。

1. 基础模板渲染

templates/index.html 模板代码:

<!DOCTYPE html> <html> <body> <h1>欢迎{{ name }}使用Flask模板</h1> <p>年龄:{{ age }}</p> </body> </html>
from flask import render_template @app.route("/index") def index(): # 向模板传递参数 return render_template("index.html", name="张三", age=20)

2. 模板常用语法

<!-- 变量渲染 --> {{ msg }} <!-- 循环遍历 --> {% for item in list %} <li>{{ item }}</li> {% endfor %} <!-- 条件判断 --> {% if age > 18 %} <p>成年</p> {% else %} <p>未成年</p> {% endif %}

三、静态文件使用

静态文件统一放入static文件夹,通过/static/路径访问,支持图片、样式、脚本引入。

<!-- 引入静态CSS/JS/图片 --> <link rel="stylesheet" href="/static/style.css"> <script src="/static/index.js"></script> <img src="/static/logo.png">

四、请求对象:获取前端所有参数

通过request对象获取前端GET、POST、URL参数、请求头、文件等数据。

from flask import request @app.route("/get_info", methods=["GET", "POST"]) def get_info(): # 获取GET请求参数 name = request.args.get("name") # 获取POST表单参数 pwd = request.form.get("pwd") # 获取请求头 ua = request.headers.get("User-Agent") return f"姓名:{name},密码:{pwd}"

五、多种响应返回方式

from flask import jsonify, redirect # 1. 返回普通文本 return "文本响应" # 2. 返回HTML页面 return render_template("index.html") # 3. 返回JSON数据(接口开发必备) return jsonify(code=200, msg="成功", data=[1,2,3]) # 4. 页面重定向 return redirect("/index")

六、避坑总结

  • 模板文件夹必须命名为templates,静态文件夹为static,默认不可修改

  • 接收参数优先用get()方法,避免参数不存在导致程序报错

  • 需要接收POST请求必须指定methods参数

http://www.jsqmd.com/news/1052527/

相关文章:

  • Steam Achievement Manager 技术深度解析:成就管理系统的架构设计与实现原理
  • 2026年服务周到的武汉一站式整装/武汉高端整装实力公司推荐 - 品牌宣传支持者
  • 2026年知名的贵州月嫂中介/贵州专业育儿嫂/贵州本地月嫂实力推荐 - 行业平台推荐
  • LLM多任务管理新突破:TB-AE解决潜在空间坍缩,实现203倍表征判别比提升
  • 2026年热门的公司注册/海口贸易公司注册/海口科技公司注册实力推荐 - 品牌宣传支持者
  • Flask表单、会话Session、Cookie完全实战
  • 如何用KKManager彻底解决游戏模组管理难题:从混乱到秩序的三步革命
  • KLayout开源版图工具:面向先进集成电路设计的架构解析与技术实现
  • 2026年效率高的武汉全铝家居全屋定制/武汉全屋一站式定制/武汉全屋整装定制哪家好 - 品牌宣传支持者
  • 175、模组返修与失效分析流程:从客诉到根本原因的完整 FA 分析方法
  • 渐进式凸包简化:基于对偶表示的贪心优化算法原理与实践
  • 2026年知名的江苏DM542型电机驱动器/无刷电机驱动器/江苏BLD300型电机驱动器/江苏无刷电机驱动器定制加工厂家推荐 - 行业平台推荐
  • 嵌入式GUI进阶:emWin光标控制、抗锯齿与Unicode多语言实战
  • Mix-CALADIN:分布式计算破解混合整数规划难题
  • 优化工作时间表的Excel公式
  • 2026年热门的回收饮料设备/储罐饮料设备/梁山出售饮料设备/梁山灌装机饮料设备厂家综合对比分析 - 行业平台推荐
  • 2026新余漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水
  • 2026年比较好的海口贸易公司注册/海口科技公司注册/海口公司注册年检品牌推荐 - 行业平台推荐
  • 基于拉格朗日对偶的大模型推理预算优化:动态平衡成本与质量
  • Linux rest_init kernel_init与kthreadd启动
  • 后端开发新趋势:探索前沿技术栈的融合应用
  • CLion优化器:提升深度学习模型泛化能力的谨慎优化策略
  • mTLS客户端认证的可用性挑战:从工具设计到用户认知的全面分析
  • 提升住宅占用检测模型泛化能力:从数据工程到训练策略的实战指南
  • 基于分层智能体架构的AI模型自动化构建系统设计与实践
  • 2026年靠谱的杀菌机饮料设备/梁山杀菌机饮料设备/包装机饮料设备深度厂家推荐 - 品牌宣传支持者
  • Ruby数组:高效、安全、语义化的数据处理核心
  • ProVoice-Bench:语音智能体主动式评估框架的设计与实践
  • 2026新乡漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水
  • 2026年靠谱的做网站/定制网站/网站建设全国知名公司 - 行业平台推荐