Flask表单基础:HTML结构、提交方式与GET/POST区别详解

今天早睡
今天早睡
发布时间:2026-10-13| 7人浏览过
原创

本文详细介绍Flask框架中HTML表单的基础知识,涵盖表单标签、域及按钮的语法与属性。重点解析GET与POST两种提交方式在数据可见性、缓存机制、安全性及长度限制上的核心区别,并给出各自适用场景建议,帮助开发者在Flask项目中正确选择数据交互策略。

本文旨在分享Flask框架中关于表单基础及其提交方式的实战经验,供读者参考学习。

HTML表单基础结构

表单介绍

表单是HTML页面中用于数据采集的核心组件,由表单标签、表单域和表单按钮三部分构成。通过表单,用户输入的数据被提交至服务器,由服务端进行后续处理。

表单标签

该标签用于定义表单的作用范围,位于其内部的所有元素在提交时均会被发送至服务器。

语法:<form></form>

属性:Method用于指定发送表单数据时使用的HTTP方法。

属性:Enctype规定在将表单数据发送至服务器前的编码方式(主要适用于method="post"的情况)。

属性:action指定提交表单时数据发送的目标URL。

表单域

表单域包含文本框、密码框等多种输入类型。

语法:<input ……/>

属性:type规定input元素的具体类型。 name定义input元素的名称。 value规定input元素的默认值。

表单域的种类

文本框type=text

密码框type=password

文本区域type=textarea(支持输入多行数据)

文件上传框type=file

单选框type=radio

复选框type=checkbox

表单按钮

提交按钮

复位按钮

一般按钮

实现:


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  <form>
    <input type="text" placeholder="Text" name="text" /># text
    <input type="password" placeholder="password" name="password" /># password
    <textarea placeholder="Textarea" name="textarea" style="resize:none"></textarea># 文本区域
    <input type="file" name="file" /># 文件上传
    <input type="radio" name="Option" value="Option1" /> Option1# 单选框
    <input type="radio" name="Option" value="Option2" /> Option2
    <input type="checkbox" name="Option" value="Option1" /> Option1# 多选框
    <input type="checkbox" name="Option" value="Option2" /> Option2
    <input type="submit" value="Submit" /># submit按钮
    <input type="reset" value="Reset" /># 重置按钮
    <input type="button" value="button" /># 普通按钮
  </form>
</body>
</html>

普通按钮若无JavaScript支持,点击后不会产生任何效果。

此处编写一个简单的JavaScript脚本,实现点击button时弹出表单中的信息:


function getValue()
{
 var text=document.form1.text1.value;
 alert(text)
}

html程序:


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script type="text/javascript" src="../static/j.js"></script># 这里插入js脚本
</head>
<body>
  <form name="form1"># 添加表单名字
    <input type="text" placeholder="Text" name="text1" /># 修改text表单名
    <input type="password" placeholder="password" name="password" />
    <textarea placeholder="Textarea" name="textarea" style="resize:none"></textarea>
    <input type="file" name="file" />
    <input type="radio" name="Option" value="Option1" /> Option1
    <input type="radio" name="Option" value="Option2" /> Option2
    <input type="checkbox" name="Option" value="Option1" /> Option1
    <input type="checkbox" name="Option" value="Option2" /> Option2
    <input type="submit" value="Submit" />
    <input type="reset" value="Reset" />
    <input type="button" value="button" οnclick="getValue()" /># 点击就调用getValue()函数
  </form>
</body>
</html>

GET与POST提交方式对比

表单的提交方式

GET和POST

GET方式通过URL提交数据,数据内容在URL中可见。

POST方式将数据放置在HTML Header中进行提交。

两种提交方式的区别

GET请求可以被浏览器缓存。

POST所请求的URL可以被缓存,但提交的数据不会被缓存。

POST请求不便于直接分享。

POST请求没有数据长度限制。

GET请求的数据暴露在URL中,可能带来一定的安全隐患。

GET方式的适用场合

仅用于请求数据,不涉及其他操作。

表单数据较短,不超过1024个字符。

对安全性要求一般的场合。

POST方式适用的场合

数据不仅用于请求,或涉及提交上传数据。

表单数据过长时。

要传送的数据非ASCII编码。

希望本文所述内容能对基于Flask框架的Python程序设计有所帮助。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。