我正在创建一个应用程序来从 index.html 获取信息(某种登录),然后重定向到第二个html页面 capture_simple.html 。但是在从第二页发送发布请求时,服务器显示错误400,然后重定向回'/'('/'是显示错误的位置),而不是保留在'/ captureSimple'。
这是我的烧瓶代码:
#imports
#app declaration
#__name__ stuff
@app.route('/')
def my_form():
return render_template("index.html")
@app.route('/', methods=['POST'])
def my_form_post():
global processed_text
text = request.form['text']
processed_text = text.upper()
make_a_dir(processed_text)
#sends data for foldername to make_a_dir()
return redirect(url_for('captureSimpleFunc'))
#captureSimple : to displey simple image
@app.route('/captureSimple', methods=['GET','POST'])
def captureSimpleFunc():
if request.method=='GET':
return render_template('capture_simple.html')
if request.method == 'POST':
xtr=request.form['flip']
print(xtr)
#some statements
return xtr
所以我的模板文件夹中有两个html页面。在页面 index.html 这个HTML页面不会造成任何麻烦。无论如何,我正在放置代码。
<body>
<div id="container_1">
<h1 class="all" id="head_name">OWL </h1>
<h2 class="all" id="head_instru">Enter MR number</h2>
<form class="all" action="." method="POST">
</div><!--
<input id="keyboard" type="text" class="ui-keyboard-input ui-widget-content ui-corner-all" aria-haspopup="true" role="textbox" >
<input id="keyboard" type="text" > <br><br> -->
<div id="wrap"> <!-- wrapper only needed to center the input -->
<!-- keyboard input -->
<input id="keyboard" type="text" name="text"><br><br>
<input class="all" id="button_" type="submit" name="my-form" value="Send">
</div> <!-- End wrapper -->
</form>
</div>
</body>
然后是第二个 capture_simple.html 页面。这就是真正的麻烦所在。
<body>
<form method="POST" action=".">
<input type="submit" name="flip">
</form>
</body>
[我删除了上面不必要的代码]
我的应用将我重定向到第二页,但是在按下表单中的翻转按钮时,它会创建所有错误请求错误400 。
终端显示如下内容:
“POST / HTTP / 1.1”400 -
答案 0 :(得分:0)
所以,我正在回答我自己的问题。
我遇到的问题是
action="."
在我的 capture_simple.html 文件中,因此它将请求发送到'/'根目录并造成所有麻烦。
只需从表单中删除action属性即可。