关键词

详解flask表单提交的两种方式

下面就给您详细讲解“详解flask表单提交的两种方式”的完整攻略。

前言

在使用 Flask 开发中,处理表单是必不可少的,它关系到与用户之间的数据交互。本文将会讨论 Flask 中的两种表单提交方式,包括 get 和 post 请求。

get请求

在 Flask 中,get 请求相对简单,直接用 query string 就能传递表单数据,处理方式如下:

from flask import Flask, request
app = Flask(__name__)

@app.route('/login')
def login():
    user = request.args.get('user')
    pwd = request.args.get('pwd')
    return 'Hello, {}! Your password is {}'.format(user, pwd)

在这个例子中,我们先通过 from flask import Flask, request 导入必要的模块。接着定义一个路由 /login。通过 request.args 获取 GET 请求中的参数并返回。

现在在浏览器的地址栏键入 http://localhost:5000/login?user=test&pwd=123456 , 注意更改localhost:5000为你的运行ip及端口号, userpwd 分别代表表单中的 name 字段。 点击回车,在界面上将会显示:

Hello, test! Your password is 123456

至此,get 请求表单提交已完成。

post请求

POST 请求需要向请求头部添加表单数据和设置提交方式。在 Flask 中,只需要使用 request.form 获取 POST 请求的表单内容,设置方法如下:

from flask import Flask, request
app = Flask(__name__)

@app.route('/login', methods=['POST'])
def login():
    user = request.form['user']
    pwd = request.form['pwd']
    return 'Hello, {}! Your password is {}'.format(user, pwd)

这个例子中,仍然是定义一个路由 /login,并指定了请求方式为 POST。通过 request.form 获取表单数据并进行处理。

为了让程序能够接收 post 请求,我们需要向路由中添加 methods=['POST']

以下是例子中的 html 页面:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>POST 请求表单提交</title>
</head>
<body>
    <form action="/login" method="POST">
        <p><input type="text" name="user" value="test"></p>
        <p><input type="password" name="pwd"></p>
        <p><input type="submit" value="Submit"></p>
    </form>
</body>
</html>

我们来看看这个表单各字段的意义:

  • action="/login"指定了表单提交的路由。
  • method="POST"是指定表单的 HTTP 方法,GET 和 POST。
  • name="user" 是表单控件的 name 属性。在服务器端获取表单数据时需要使用。
  • value="test" 是输入框的默认值。
  • type="password" 是密码输入框。
  • <input type="submit">是用来发送表单的按钮。

至此,post 请求表单提交已完成。

总结:get 或 post 请求到底使用哪种表单,视需求而定。get 只适合于较小的数据量,post 更适合于较大的数据量。当需要上传文件时只能使用 post 方法。如果提交的数据有敏感信息,推荐使用 post 方式。

本文链接:http://task.lmcjl.com/news/15544.html

展开阅读全文