Flask Python 中的 HTTP 状态 405 和 Restful API
HTTP Status 405 and Restful API in Flask Python
总目标
对于我正在开发的没有框架的网上商店,我需要定义一个通往应用程序 restful API 的良好路径。
问题
当我加载页面时(例如:localhost:.../api/favorites),我收到 HTTP 405 错误消息:"Method not allowed".
我搜索了不同类型的资源,例如关于 HTTP 405 错误的论坛 post:。但我无法发现这将如何解决我的错误。
我研究了 'Flask Documentation' 并找到了一个例子:
@app . url_defaults
def add_language_code ( endpoint , values ) :
if lang_code in values or not g . lang_code :
return
if app . url_map . is_endpoint_expecting ( endpoint , lang_code ) :
values [ lang_code ] = g . lang_code
但我找不到我做错了什么或遗漏了什么,最重要的是:为什么我在这个@api 路由中收到 HTTP 405 错误。
我的项目说明:
在数据库中,我有一个名为“favorites”的 table,其列为“user_id”和'product_id。在 /favorites 页面上,我想从收藏夹 table 加载数据以显示(特定)用户的收藏夹项目。
但首先我只想从数据库中导入数据。
我想通过从数据库中检索 product_id 来做到这一点(第一条路线)。稍后我想指定只有在您订购后才能收藏商品。 (orderhistory or combined by user_id) (second route).
网店的front-end是用html/css/javascript做的,back-end是python做的。
问题:
HTTP 405 消息的错误是由于这段路由到 API 的代码错误造成的吗?
有人可以理解并解释我的确切代码错误,以便我可以通过了解导致错误的原因来尝试修复它吗?
第一条路线
@api.route('/favorites/<int:product_id>', methods = ['GET'])
def get_favorites(product_id):
return favorites.get_favorites(product_id)
第二条路线
@api.route('/favorites/<int:user_id>')
def get_favorites_by_user_id(user_id):
return favorites.get_favorites_by_user_id(user_id)
非常感谢您!
如果能展示一下你的前端代码就好了。但我认为您向后端发出了 post 请求,但没有在您的逻辑中列出 methods=['GET', 'POST']
。因此得到一个 405.
只需将 POST 添加到您的列表中
总目标
对于我正在开发的没有框架的网上商店,我需要定义一个通往应用程序 restful API 的良好路径。
问题
当我加载页面时(例如:localhost:.../api/favorites),我收到 HTTP 405 错误消息:"Method not allowed".
我搜索了不同类型的资源,例如关于 HTTP 405 错误的论坛 post:。但我无法发现这将如何解决我的错误。
我研究了 'Flask Documentation' 并找到了一个例子:
@app . url_defaults
def add_language_code ( endpoint , values ) :
if lang_code in values or not g . lang_code :
return
if app . url_map . is_endpoint_expecting ( endpoint , lang_code ) :
values [ lang_code ] = g . lang_code
但我找不到我做错了什么或遗漏了什么,最重要的是:为什么我在这个@api 路由中收到 HTTP 405 错误。
我的项目说明:
在数据库中,我有一个名为“favorites”的 table,其列为“user_id”和'product_id。在 /favorites 页面上,我想从收藏夹 table 加载数据以显示(特定)用户的收藏夹项目。 但首先我只想从数据库中导入数据。 我想通过从数据库中检索 product_id 来做到这一点(第一条路线)。稍后我想指定只有在您订购后才能收藏商品。 (orderhistory or combined by user_id) (second route).
网店的front-end是用html/css/javascript做的,back-end是python做的。
问题:
HTTP 405 消息的错误是由于这段路由到 API 的代码错误造成的吗?
有人可以理解并解释我的确切代码错误,以便我可以通过了解导致错误的原因来尝试修复它吗?
第一条路线
@api.route('/favorites/<int:product_id>', methods = ['GET'])
def get_favorites(product_id):
return favorites.get_favorites(product_id)
第二条路线
@api.route('/favorites/<int:user_id>')
def get_favorites_by_user_id(user_id):
return favorites.get_favorites_by_user_id(user_id)
非常感谢您!
如果能展示一下你的前端代码就好了。但我认为您向后端发出了 post 请求,但没有在您的逻辑中列出 methods=['GET', 'POST']
。因此得到一个 405.
只需将 POST 添加到您的列表中