Flask 应用程序无法识别我添加的新路线

问题描述 投票:0回答:1

我尝试运行的 Flask 应用程序遇到一些问题。

当我对此服务器进行curl调用时(url指向服务器的本地主机,例如http://localhost:5000/[FLASK_ROUTE]),Flask应用程序由脚本(main.py)实例化,它看起来像这个:

from flask import Flask
from routes_en import spacy_en_api

app = Flask(__name__)

app.register_blueprint(spacy_en_api)

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

然后路由到另一个文件(routes_en.py),如下所示:

from flask import Blueprint
from flask import request
from flask import jsonify

import spacy

nlp = spacy.load('en')

spacy_en_api = Blueprint('spacy_en_api', __name__)

@spacy_en_api.route("/[MY_CUSTOM_ROUTE]", methods=['POST'])
def [MY_CUSTOM_ROUTE]():
data["output"] = "test - it works"
return jsonify(data)

@spacy_en_api.route("/en_parse_text", methods=['POST'])
def en_parse_text():
# code here

其中“en_parse_text”是我之前的人编写的代码。脚本的这一部分在调用时工作正常(http://localhost:5000/en_parse_text 返回预期的输出)。

但是,当我插入新路线(MY_CUSTOM_ROUTE)时,我没有得到任何输出。当我检查日志时,它显示“127.0.0.1 - - [DATE]”POST /MY_CUSTOM_ROUTE HTTP/1.1 404 -”。

更重要的是:如果我在现有路由中编写新代码(例如,我将“# code here”替换为“print(“testing”)”,curl 调用返回的不是我的代码,而是我替换/注释掉的代码。

也可能很重要:Flask 版本是 1.1.1 / Python 3.7.3 / Werkzueg 0.15.5

什么可能导致应用程序无法识别我的新路线?预先感谢您的帮助。

python flask localhost http-status-code-404 spacy
1个回答
0
投票

要解决 Flask 无法识别您的新路线的问题,请确保在蓝图中正确定义并注册该路线。

在 main.py 中,确认正确的蓝图注册 (app.register_blueprint(spacy_en_api))。

在routes_en.py中,使用@spacy_en_api.route("/MY_CUSTOM_ROUTE",methods=['POST'])定义路由。

检查路由定义和curl命令之间的命名一致性(curl -X POST http://localhost:5000/MY_CUSTOM_ROUTE)。

更改后重新启动 Flask 应用程序 (python main.py)。

使用打印语句进行调试(print("Handling MY_CUSTOM_ROUTE request"))。

验证 Flask 和依赖项是否是最新的(Flask 1.1.1、Python 3.7.3)。

这些步骤应有助于有效诊断和解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.