总目标
对于一个没有框架的webshop,我需要定义一个到应用程序的restful api的好路径。
问题
当我加载页面(例如:localhost:…/api/favorites)时,我得到http 405错误,并显示消息:“method not allowed”。
我已经搜索了不同的来源,比如关于htp405错误的论坛帖子:HTTP Status 405 - Method Not Allowed Error for Rest API。但我无法发现这将如何解决我的错误。
我研究了“烧瓶文件”,发现了一个例子:

@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路由会得到那个htp405错误。
我的项目说明:
在数据库中,我有一个名为“收藏夹”的表,列为“用户ID”和“产品ID”。在/Favorites页上,我希望从“收藏夹”表中加载数据,以显示(特定)用户收藏的项目。
但首先我只想从数据库中导入数据。
我想通过从数据库中检索产品id(第一个路由)来实现这一点。稍后,我要指定,只有在您订购了项目后,才可以收藏项目。(OrderHistory或按用户ID组合)(第二个路由)。
webshop的前端由html/css/javascript生成,后端由python生成flask。
问题是:
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)

非常感谢你提前!

最佳答案

如果你能显示你的前端代码就好了。但我认为您在逻辑中没有列出methods=['GET', 'POST']就向后端发出了post请求。所以得了405分。
只需将帖子添加到列表中

关于python - Flask Python中的HTTP Status 405和Restful API,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41755089/

10-16 21:39