Flask 404在烧瓶中使用“重定向”和“url_for”时
我正在尝试测试烧瓶中的重定向。我可以直接转到端点url没有问题,但当我尝试重定向到它时,会收到一条错误消息Flask 404在烧瓶中使用“重定向”和“url_for”时,flask,Flask,我正在尝试测试烧瓶中的重定向。我可以直接转到端点url没有问题,但当我尝试重定向到它时,会收到一条错误消息 编辑:我将方法、调用和url的名称更改为“predict”,但仍然得到相同的错误 这就是我的代码的样子 from flask import Flask, request, render_template, jsonify from flask_ngrok import run_with_ngrok from flask import redirect, url_for app = Fla
编辑:我将方法、调用和url的名称更改为“predict”,但仍然得到相同的错误 这就是我的代码的样子
from flask import Flask, request, render_template, jsonify
from flask_ngrok import run_with_ngrok
from flask import redirect, url_for
app = Flask(__name__)
run_with_ngrok(app)
@app.route('/QueryParser', methods=['GET', 'POST'])
def query():
if request.method == 'GET':
return render_template('index.html', value='hi')
else:
body = request.get_json()
question_textN = body['question']
context_textN = body['context']
return redirect(url_for('predict', question=question_textN,
context=context_textN))
@app.route("/predict/<question>/<context>", methods=["GET"])
def predict(question, context):
question_text = question
context_text = context
return jsonify(answer=question_text, context=context_text)
if __name__=="__main__":
app.run()
如果我直接转到url,它就可以正常工作
我在命令行输出中得到这个
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Running on http://688adffe.ngrok.io
* Traffic stats available on http://127.0.0.1:4040
127.0.0.1 - - [21/Feb/2020 03:51:48] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [21/Feb/2020 03:51:48] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [21/Feb/2020 03:51:55] "GET /QueryParser HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2020 03:52:01] "POST / HTTP/1.1" 404 -
127.0.0.1 - - [21/Feb/2020 02:07:28] "GET /ModelInference/test1/test2 HTTP/1.1" 200 -
还有一个输出,虽然我的目标是将输出传递给html,但我可以稍后再担心
{
"answer": "test1",
"context": "test2"
}
要重新创建最小的示例,请使用以下代码从我的google drive下载文件。请注意,1.0以上的flask版本有时不适用于flask_ngrok。在某些情况下,只有版本0.12.5或0.12.4有效
!pip install flask==1.0
!pip install flask-ngrok
import os
if not os.path.exists('templates'):
os.mkdir('templates')
%cd templates
!gdown --id 1-l3SlwyyNjSV-bzUnyw1ZpPaPQz3KUYP
%cd ..
!gdown --id 1s_lGCf_T0619RWZKBjQ_oES0jwmNSn2F
!python rest-testMin.py
为了方便起见,这里有一个GoogleColab链接,可以执行此代码
url_的第一个参数应该是视图函数的名称。应该是
return redirect(url_for('predict', question=question_textN, context=context_textN))
从
flask.url\u forendpoint,**值
使用提供的方法生成指向给定端点的URL
而且
从服务器输出
127.0.0.1 - - [21/Feb/2020 03:52:01] "POST / HTTP/1.1" 404 -
您似乎没有正确设置表单操作属性以指向查询视图函数
<form method="post" action="{{url_for('query')}}">
...
</form>
我将方法、调用和url的名称更改为“predict”,但仍然得到相同的错误。我还更新了问题和链接