Flask 表单 – 使用 Flask 表单接受用户输入

大家好!!在本教程中,我们将研究 Flask 表单以及如何创建它们。那么让我们现在就深入研究一下吧!

Flask 表单的基础知识

表单是 Web 应用程序的重要组成部分,从用户身份验证界面到我们网站上所需的调查表单。

表格的典型示例是:

表格示例

在这里,当用户第一次请求该页面时,他通过我们所说的“ GET 方法”接收该页面。

填写表单后,用户数据通过POST方法发送到服务器。

我们稍后将详细了解这两种方法。

这些表单使用 HTML 的<form>属性通过模板显示给用户

示例 HTML 表单如下所示:

<form action="action_to_perform_after_submission" method = "POST">
    <p>Field1 <input type = "text" name = "Field1_name" /></p>
    <p>Field2 <input type = "text" name = "Field2_name" /></p>
    <p>Field3 <input type = "text" name = "Field3_name" /></p>
    <p><input type = "submit" value = "submit" /></p>
</form>

在这里,我们在action属性中定义对表单数据执行的操作

发送数据的 GET 或 POST 方法

其中每个方法(也称为 HTTP 方法)对服务器资源执行特定操作。每种方法对应不同的任务。在本文中,我们将了解其中的两种方法:GET 和 POST 方法。

  1. GET –此方法从网络服务器中提取特定信息(只是为了查看它)
  2. POST –此方法将数据从用户发送到服务器。

因此,以 Instagram 应用程序为例。

默认情况下,浏览器总是使用GET方法来显示网页上的资源。因此,在这里您可以看到不同的内容 – 帖子和模因(通过 GET 方法)。

但是,当您发布照片时,基本上您会将信息(照片和标题)发送到 Instagram 应用程序服务器。因此,此操作(向服务器发送数据)是通过 POST 方法完成的。 

同样,考虑一个博客网站。当你在网站上阅读博客时,是通过GET方法。当您撰写和发布博客时,是通过POST方法。

构建你的第一个 Flask 表单

我们现在将在 Flask 应用程序中创建一个简单的表单

1.编写flask文件

考虑以下代码:

from flask import Flask,render_template,request
 
app = Flask(__name__)
 
@app.route('/form')
def form():
    return render_template('form.html')
 
@app.route('/data/', methods = ['POST', 'GET'])
def data():
    if request.method == 'GET':
        return f"The URL /data is accessed directly. Try going to '/form' to submit form"
    if request.method == 'POST':
        form_data = request.form
        return render_template('data.html',form_data = form_data)
 
 
app.run(host='localhost', port=5000)

这里,

  1. 表单视图向用户显示 HTML 表单模板
  2. 当用户提交表单时,表单数据(作为请求对象的一部分)通过 POST 方法 发送到数据视图。
  3. 然后,数据视图将表单数据元素重新创建到变量form_data中,并将其发送到data.html模板进行显示。

request.form一个字典结构:

form_data = {
'key1(field1_name)' : 'value1(field1_value)',
'key2(field2_name)' : 'value2(field2_value)',
.
.
}

在这里,一旦提交表单,浏览器就会重定向到数据功能网页。

注意:当我们通过表单定向到/data时,我们基本上是通过POST方法访问数据网页。

2. 模板文件

这里的表单模板-“ form.html ”将是:

<form action="/data" method = "POST">
    <p>Name <input type = "text" name = "Name" /></p>
    <p>City <input type = "text" name = "City" /></p>
    <p>Country <input type = "text" name = "Country" /></p>
    <p><input type = "submit" value = "Submit" /></p>
</form>

data.html将显示表单数据

{% for key,value in form_data.items() %}
<h2> {{key}}</h2>
<p> {{value}}</p>
{% endfor %}

请查看我们的Flask 模板文章,了解有关模板的更多信息。

3.本准则的实施

现在运行服务器并检查

/形式

点击提交并查看

/数据(发布)

此外,当您尝试直接从浏览器点击 URL“/data”时,您将通过GET方法获取此网页,该方法将显示错误,因为不存在表单数据。

/数据(获取)

结论

就是这样,伙计们!这就是 Flask 中的 Forms 的全部内容。我们将在接下来的文章中了解更多有关此类 Flask 主题的信息!

到那时,祝您编码愉快 🙂