Python Flask学习_POST/重定向/GET模式

在Python Flask框架中,当用户提交POST请求后,浏览器刷新可能导致表单重复提交。为避免这种情况,可以使用重定向来处理POST请求,即在服务器端返回一个重定向URL,浏览器接收到后自动发起GET请求,确保安全。该流程包括客户端的POST请求、服务器返回重定向URL以及客户端的GET请求。

问题:刷新浏览器页面时,浏览器会重新发送之前发送的最后一个请求。如果这个请求是包含表单数据的POST请求,刷新页面后会再次提交表单。浏览器会发出警告:要求在再次提交前确认。

因此,最好别让Web程序把POST请求作为浏览器发送的最后一个请求。

解决方法是:使用重定向作为刷新产生的POST请求的响应。重定向响应是一种响应URL(而不是HTML代码)的特殊响应,浏览器收到相应的URL,会向重定向的URL发起GET请求。

流程示意图:

客户端(浏览器)--------(POST请求)---------------->服务器

客户端(浏览器)<-------------(URL)----------------服务器

客户端(浏览器)--------(GET请求URL)-------------->服务器

例子:

# test.py

from flask import Flask, render_template, session, redirect, url_for

@app.route("/",methods=['GET','POST'])
def index():
    form = NameForm()
    if form.validate_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值