gpt4 book ai didi

javascript - 理解为什么 Request 在 Flask 中不起作用

转载 作者:行者123 更新时间:2023-12-03 10:52:07 24 4
gpt4 key购买 nike

我建立了一个小型 flask 服务器和相关网站。我能够使用 Flask 服务器成功本地托管页面,此外,我还能够使用代码 return str(request.form) 来查看单击 a 后放置在文本字段中的文本。按钮。

现在我在我的代码中写道,单击第一个 html 页面的按钮后,人们会在我的本地主机上发现它们被重定向到另一个具有几乎相同代码的 html 页面。然而由于某种原因:

return str(request.form)

不再显示我输入到网站的值。我一直在尝试调试原因,并最终得出结论, flask 请求对象在多次调用时的行为方式不同。除此之外,我不知道如何修复它。

这里是:(Flask Python 代码:)

from flask import Flask
from flask import request
from flask import render_template
from flask import abort, redirect, url_for
import pymongo
from pymongo import MongoClient
import smtplib
from email.mime.text import MIMEText



app = Flask(__name__)

@app.route('/')
def my_form():
return render_template('minifile.html')

@app.route('/', methods=['POST'])
def my_form_post():
return redirect(url_for('my_form2'))

@app.route('/a/')
def my_form2():
return render_template('minifile2.html')
@app.route('/a/', methods=['POST'])
def my_form2_post():
return str(request.form)

if __name__ == '__main__':
app.run(debug=True)

minifile.html 的 HTML

<!DOCTYPE html>
<head>

</head>

<body>
<form action="\" method='POST'>
<input type="text" name="firstname" value="" style="width: 210px;"/>

<input type="Submit" name="" value="submit" style="width: 210px; background-color: black; color: white; font-weight: bold; padding-top: 3px; padding-bottom: 3px;" />
</form>
</body>




</html>

minifile2.html 的 HTML

<!DOCTYPE html>
<head>

</head>

<body>
<form action="\" method='POST'>
<input type="text" name="firstname" value="" style="width: 210px;"/>

<input type="Submit" name="" value="submit" style="width: 210px; background-color: black; color: white; font-weight: bold; padding-top: 3px; padding-bottom: 3px;" />
</form>
This is text
</body>



</html>

最佳答案

您的第二个表单发回根路径处理程序/:

<form action="\" method='POST'>

您可以在控制台的 Flask 输出上看到此操作:

127.0.0.1 - - [08/Feb/2015 13:08:16] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [08/Feb/2015 13:08:16] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [08/Feb/2015 13:08:21] "POST / HTTP/1.1" 302 -
127.0.0.1 - - [08/Feb/2015 13:08:21] "GET /a/ HTTP/1.1" 200 -
127.0.0.1 - - [08/Feb/2015 13:08:26] "POST / HTTP/1.1" 302 -
127.0.0.1 - - [08/Feb/2015 13:08:26] "GET /a/ HTTP/1.1" 200 -

在发布由 / 提供的第一个表单时,浏览器将重定向到 /a/ (POST 提供 302 重定向,随后是第二个表格的 200 回复)。 POST 该表单会返回到 /。您还可以使用浏览器开发人员工具来观察网络条目。

不要硬编码操作 URL,而是使用 url_for 并命名您的目标:

<form action="{{ url_for('my_form2_post') }}" method='POST'>

关于javascript - 理解为什么 Request 在 Flask 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28394046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com