flask 发送 post 请求
我们将通过这个解释了解两种基本的 http 方法(get
和 post
),我们还将了解它们之间的区别,然后通过一个基本示例来了解如何从 flask 中的基本表单发送数据.
在 flask 中使用 post
请求
我们将解释 http 方法、get
和 post
请求。你可能以前听说过这两种方法; get
是获取信息或向网站或客户发送信息的最常用方式,具体取决于信息的发送方式。
post
是一种安全的方式; get
本质上是一种不安全的获取信息的方式;它是最常用的。当我们运行我们的应用程序并浏览它时,我们可以看到它已连接到我们拥有ag捕鱼王app官网主页的位置;如果我们进入控制台,会弹出一条语句并说 get
。
这是什么意思?本质上,每当我们在这里输入内容时都是不安全的,这意味着你知道任何人都可以看到它。
将发送到服务器并使用 get
方法返回给我们实际网页的信息不是安全信息。
from flask import flask
app=flask(__name__)
@app.route('/')
def index():
return "hi there, this is testing"
if __name__=='__main__':
app.run(debug=true)
输出:
如果我们使用 post
请求,我们可以发送加密的安全信息,我们不会从任何一个端点看到它。它不存储在实际的 web 服务器上,因此这就是 get
和 post
之间的区别。
我们可能没有以最好的方式解释它,但是通过这篇文章,我们将了解它们之间的主要区别以及考虑用于发送不安全请求和 post
请求的 get
方法是安全的基本方法用于发送数据,通常用于发送表单数据。
让我们来看一个基本的例子:我们想在这个应用程序中设置几个不同的页面。我们将编写一个带有对话框的脚本,在该对话框中,有人可以使用按钮键入并发送它,我们在使用 post
请求时执行此操作。
我们将使用名为 login()
的方法设置一个页面,在顶部给它一个装饰器,然后放置 "/login"
。我们需要添加另一个我们还没有看到的方面:方法
。
我们可以在这个登录页面上使用它,所以默认情况下,每当你连接,或者你去几个页面之一,然后你去一个 get
请求,这意味着我们需要获取该信息,但它不会为了安全起见,这就是为什么我们有一种不同的方法,即 post
方法。
在装饰器中,我们需要使用一个名为 methods
的参数,它接受一个列表,然后我们在列表中放置一个 post
和 get
。
@app.route("/login", methods=["post", "get"])
问题是我们如何在这个 login
函数中确定我们是调用 get
请求还是调用 post
请求?我们需要开始导入 request
并将其与 if
语句一起使用,以检查我们是否通过 get
请求或 post
请求到达此页面。
如果我们有一个 post
,我们会重定向用户并将数据发送到用户页面,我们可以在其中显示数据。我们还使用 data
作为表单字典的键,并从我们的 login.html
文件中访问它,其中我们有一个名为 name
的属性。
如果我们有 get
请求,我们使用 render_template()
方法呈现登录页面。
def login():
if request.method == "post":
uer_data = request.form["data"]
return redirect(url_for("user", usr=uer_data))
else:
return render_template("login.html")
现在我们需要再创建一个页面,函数的名称将是 user()
,它将接受一个变量 usr
。我们将返回基本的 html,而不是返回模板。
@app.route("/" )
def user(usr):
return f""
现在我们需要构建一个简单的 html 表单的登录页面,因此,在模板文件夹中,我们创建一个 login.html
文件;在这个文件中,我们将使用 bootstrap 启动器模板。在 body 标签内,我们开始创建表单。
我们使用了 method
属性,在这种情况下,我们的方法将是 post
,因为我们将发布信息,而不是获取信息,通常,如果你将 get
放在这里,这意味着你将使用你从服务器获得的信息填写此表格。
<h1>hello, this is login page!h1>
<form action="#" method="post">
<p>name:p>
<p><input type="text" name="data" />p>
<p><input type="submit" value="submit"/>p>
form>
这是我们上面解释的 app.py
文件的完整源代码。
from flask import flask,render_template,redirect,url_for,request
app=flask(__name__)
@app.route('/')
def index():
return render_template("index.html")
@app.route("/login", methods=["post", "get"])
def login():
if request.method == "post":
uer_data = request.form["data"]
return redirect(url_for("user", usr=uer_data))
else:
return render_template("login.html")
@app.route("/" )
def user(usr):
return f""
if __name__=='__main__':
app.run(debug=true)
输出:
控制台输出:
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
pandas dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串