理解为什么请求没有;我不在弗拉斯克工作
Understanding Why Request Doesn't work in Flask
我已经建立了一个小烧瓶服务器和相关的网站。我可以使用flask服务器成功地在本地托管页面,此外,我还可以使用代码return str(request.form)
查看我点击按钮后放置在文本字段中的文本。
现在,我在代码中写道,单击本地主机上第一个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)
HTML for minifile.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>
HTML for minifile2.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'>
相关文章:
- 当屏幕宽度减小时,Bootstrap Form下拉菜单停止工作
- 角度下拉子菜单工作不正常
- 理解为什么请求没有;我不在弗拉斯克工作
- 引导下拉列表只工作一半的时间
- 斯克罗尔移动浏览器问题
- 如何使拉斯维加斯滑块完全响应
- 基础下拉列表停止工作
- 为什么更改时事件在下拉列表中工作一次
- 第四模式阻止导航栏下拉菜单正常工作
- 安古拉斯的真正考验总是失败——因果报应
- IE7中没有填充mootools中的动态下拉列表.IE8工作良好
- 选择下拉菜单的工作方式不同
- 要使semantic-ui下拉菜单正常工作,需要哪些js文件?
- Bootstrap 3:下拉菜单不工作与.js和引导文件链接
- 层叠下拉是不工作使用jquery
- jQuery可搜索下拉插件不工作
- Javascript下拉菜单不工作
- Jquery隐藏下拉列表不工作
- 毕达哥拉斯# 39;javascript中的公式
- 无线电和下拉菜单不工作