下面就给您详细讲解“详解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及端口号, user 和 pwd 分别代表表单中的 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 方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解flask表单提交的两种方式 - Python技术站