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

初认Flask框架

目录

  • Flask框架概述
      • 1.Flask的安装及应用
        • 1. 安装Flask
        • 2. 创建第一个flask应用
        • 3. 运行Flask应用
      • 2.Flask路由与视图函数
        • 1.动态路由
        • 2.支持多种http请求方法
        • 3.使用Jinja2模板渲染HTML
        • 4.模板继承与块
  • Flask表单处理与用户输入
      • 1.安装Flask-WTF
      • 2.创建一个简单表单

Flask框架概述

Flask 作为一个微框架,强调简单性和灵活性。它依赖于两个重要的 Python 库来提供核心功能:

Werkzeug:这是 Flask 的底层库,提供了 WSGI 接口、HTTP 请求和响应处理、路由等核心功能。
Jinja2:一个功能强大的模板引擎,用于动态生成 HTML 页面。

Flask 的设计目的是让开发者能够快速开发应用,并提供了灵活的方式进行扩展。如果你不需要复杂的功能,Flask 的核心本身已经足够满足需求。如果你需要更多高级特性,可以通过 Flask 的扩展库进行补充。

1.Flask的安装及应用

1. 安装Flask

在这里插入图片描述

2. 创建第一个flask应用

Flask的应用结构非常简单,只需创建一个 Python 文件,并通过 Flask()类来实例化应用对象。以下是一个最简单的 Flask 应用示例:
在这里插入图片描述
代码解析:

Flask(name):创建 Flask应用实例,__name__参数用于 Flask 了解当前模块的名称,通常我们使用这个参数来帮助 Flask 在不同模块间进行配置。
@app.route(‘/’):定义路由和视图函数的映射。'/'是根路径,当用户访问根 URL 时,Flask会调用 hello world()函数。
return’Hello,world!:视图函数返回一个简单的字符串响应,Flask 会将其作为 HTTP 响应返回给客户端。
app.run(debug=True):启动Flask开发服务器,debug=True 表示启用调试模式,这样可以在开发过程中自动重载应用,并在发生错误时显示详细信息。

3. 运行Flask应用

在这里插入图片描述
在这里插入图片描述

2.Flask路由与视图函数

Flask的核心之一就是路由系统,它将用户访问的 URL 与对应的视图函数相连接。Flask 通过装饰器@app.route()来定义路由,而视图函数则负责处理用户的请求并返回响应。

1.动态路由

Flask支持动态路由参数,可以通过URL中的动态部分来获取数据:
在这里插入图片描述
代码解释:

name:这是一个动态路由参数,Flask 会提取 URL 中的 name 部分并将其传递给视图函数
当用户访问/greet/John 时,name 的值将为 John,返回的响应为 Hello,John!。

在这里插入图片描述

2.支持多种http请求方法

Flask不仅支持 GET 请求,还支持其他常见的 HTTP 请求方法,如 POST、PUT、DELETE等。你可以通过methods 参数来指定允许的请求方法:
在这里插入图片描述

代码解释:
methods=[‘POST’]:只允许 POST 请求访问此路由。如果用户通过 GET 请求访问,Flask 会返回405 Method Not Allowed 错误.

在这里插入图片描述
在这里插入图片描述

3.使用Jinja2模板渲染HTML

Flask 结合 Jinja2 模板引擎来动态生成 HTML 页面。你可以将 HTML 文件与 Python 代码分离,保持应用结构清晰。在 Flask 中,模板文件默认存放在 templates 文件夹中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码解析:

render template(‘greet.html’,name=name):Flask会加载greet.html模板,并将name的值传递给模板。模板中的{{name }}会被替换为传入的值。
在这里插入图片描述

4.模板继承与块

Flask 支持模板继承和块(Block)功能,这对于构建复杂页面非常有用。你可以在基础模板中定义通用的布局结构,在子模板中覆盖特定的部分。
父模板:
在这里插入图片描述
子模板:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码解析:
{% extends’base.html’%}:子模板继承了 base.html 模板。
{% block title %}Home{% endblock %}:覆盖父模板中的 title 块。
{% block content %}:定义页面的主要内容区域。

Flask表单处理与用户输入

Flask 可以通过表单来获取用户输入,常见的做法是结合 Flask-WTF 扩展来简化表单处理和验证。
Flask-WTF 为 Flask 提供了一个表单类,你可以在表单类中定义字段和验证规则。

1.安装Flask-WTF

在这里插入图片描述

2.创建一个简单表单

在这里插入图片描述

代码解析:
FlaskForm:继承自 FlaskForm 类,定义表单字段。
StringField(‘Name’,validators=[DataRequired()]):定义了一个文本输入字段,并且通过 DataRequired()验证器确保字段不能为空。
form.validate on submit():检査表单是否通过验证并被提交。

index.html 模板
在这里插入图片描述
在这里插入图片描述
代码解析:
{{ form.csrf_token }}:FlasK-WTF 会自动生成并验证 CSRF token,以防止跨站请求伪造攻击。
{{ form.name()}}:这是通过 Jinja2 模板渲染NameForm 表单的字段。form.name()会生成对应的 HTML 标签。
{% if form.name.data %}:如果用户提交了表单并且 name 字段不为空,则显示欢迎信息。
在这里插入图片描述
点击submit
在这里插入图片描述

相关文章:

  • 基于深度学习的智能语音合成系统:技术与实践
  • pmset - 控制 macOS 系统电源、睡眠、唤醒与节能
  • 隧道代理IP的使用与技术优势分析
  • 学习笔记:Redis入门
  • Trae国内版Builder模式VS Chat模式
  • 表格对比工具推荐,快速比对Excel文件
  • 开疆智能ModbusTCP转Devicenet网关连接西门子200Smart与费托斯阀岛案例
  • 数据库中的Schema是什么?不同数据库中Schema的含义
  • Charles 抓包工具使用教程
  • OpenLayers 图层叠加控制
  • 芯片测试之VIL/VIH(输入电平)Test全解析:从原理到实战
  • 服务器上安装配置vsftpd
  • Webpack:现代前端构建工具的核心解析
  • 深入理解 @JsonGetter:精准掌控前端返回数据格式!
  • 26考研 | 王道 | 计算机组成原理 | 七、输入输出系统
  • PHP设计模式实战:领域驱动设计与六边形架构
  • life long learning
  • 线上故障诊断黑魔法:基于/proc目录的无工具排查体系
  • 并发编程-ReentranLock
  • Git:现代开发的版本控制基石
  • 百度新网站收录/兰州网络优化seo
  • 外贸网站 开源/网址大全百度
  • 重庆江北区网站建设公司/河北网站seo策划
  • 中国建设银行密码重置网站/优秀软文范例
  • 可以做软件的网站/怎样优化网站排名
  • 哪个网站看电视剧最全还免费/慈溪seo排名