python flask javascript删除405(不允许使用方法)

python flask javascript删除405(不允许使用方法),javascript,python,postgresql,flask,flask-sqlalchemy,Javascript,Python,Postgresql,Flask,Flask Sqlalchemy,我正在尝试添加一个按钮,从我的postgres数据库中删除音乐场地,并在该场地的页面上使用flask sqlalchemy,然后重定向到主页,但我发现了错误 DELETE ip 405 (METHOD NOT ALLOWED) 在我的控制台和 [28/May/2020 14:12:49] "DELETE /deletevenue/1 HTTP/1.1" 302 - 72.133.209.13 - - [28/May/2020 14:12:50] "DELETE / HTTP/1.1" 405

我正在尝试添加一个按钮,从我的postgres数据库中删除音乐场地,并在该场地的页面上使用flask sqlalchemy,然后重定向到主页,但我发现了错误

DELETE ip 405 (METHOD NOT ALLOWED)
在我的控制台和

[28/May/2020
14:12:49] "DELETE /deletevenue/1 HTTP/1.1" 302 -
72.133.209.13 - - [28/May/2020
14:12:50] "DELETE / HTTP/1.1" 405 -
在我的候机楼。我不知道出了什么问题。我可以看到正确的地点id被发送到路线,但我仍然收到此错误。我不知道这里怎么了。以下是相关代码:

app.py

@app.route('/deletevenue/<venue_id>', methods=['DELETE'])
def delete_venue(venue_id):
  error = False
  venue = db.session.query(Venue).filter_by(id=venue_id).one()
  name = venue.name
  try:
    Venue.query.filter_by(id=venue_id).delete()
    db.session.commit()
  except:
    error = True
    db.session.rollback()
  finally:
    db.session.close()
  if error:
    flash('An Error occured.  The venue ' + name + ' could not be deleted.')
    return redirect(url_for('index'))
  else:
    flash('Success.  Venue ' + name + ' was deleted.')
    return redirect(url_for('index'))

@app.route('/')
def index():
  return render_template('pages/home.html')
@app.route('/deleteVincement/',方法=['DELETE'])
def删除场馆(场馆id):
错误=错误
地点=db.session.query(地点).筛选依据(id=vention\u id).one()
name=地点.name
尝试:
vention.query.filter_by(id=vention_id).delete()
db.session.commit()
除:
错误=真
db.session.rollback()
最后:
db.session.close()
如果出现错误:
flash('发生错误。无法删除场馆'+name+'。'))
返回重定向(url_for('index'))
其他:
flash('Success.vention'+name+'已被删除')
返回重定向(url_for('index'))
@应用程序路径(“/”)
def index():
返回呈现模板('pages/home.html')
show_vention.html

    <div class="row">
        <button class="btn btn-default btn-lg" id="deleteArtist" data-id="{{ venue.id }}">Delete this Artist</button>
    </div>
</section>

<script>
    const btn = document.getElementById('deleteArtist');
    btn.onclick = function(e) {
        venue_id = e.target.dataset['id'];
        console.log(venue_id)
        let r = confirm("Are you sure you want to delete this venue?");
        if (r == true) {
            fetch('/deletevenue/' + venue_id, {
                method: 'DELETE'
            })
        }
    }

</script>

删除此艺术家
const btn=document.getElementById('DeleteArtister');
btn.onclick=函数(e){
地点id=e.target.dataset['id'];
控制台日志(场馆id)
让r=确认(“您确定要删除此场地吗?”);
如果(r==true){
获取('/deleteVenture/'+场馆id{
方法:“删除”
})
}
}
我怎样才能让这个按钮工作

  • redirect()是flask=>返回响应\u代码:302,使用接收到的相同方法。(这里是DELETE)=>所以它用DELETE=>405方法重定向到
    索引路由

  • 方法返回一个Promise=>它需要一个结果响应,您不能像这样重定向代码:

  • 返回重定向(url\u用于('index'))
    

    它应该返回json或类似的值,然后使用javascript代码检查值=>重定向。-

    此日志表示您对路由索引的请求呼叫,而不是路由*delete\u venue*
    14:12:50]“delete/HTTP/1.1”405-