为什么我在python,blueprint中遇到404错误?

时间:2015-03-22 23:09:35

标签: python flask blueprint

我定义了这样的蓝图路线:

@mod_patient_directory.route('/delete-patient/<string:doc_id>',  methods = ['GET'])
def delete_record(self, doc_id):
    mongo.db.patient.remove({'_id': doc_id})
    return redirect(url_for('main-page'))

在表格上我称之为:

 <form action="{{ url_for('patient_directory.delete_record',doc_id= doc_id )}}" method="post">
                              <input type="hidden" name="docId" id="docId" value="{{ patient_doc._id }}" />
                              <input type="hidden" name="action" id="action" value="delete" />
                              <button type="submit" class="btn btn-default btn-sm">
                                  <span class="glyphicon glyphicon-remove"></span>
                              </button>
 </form>

有人可以告诉我为什么我会收到404错误吗?

1 个答案:

答案 0 :(得分:0)

一个问题是您在路线上有methods = ['GET'],但在表格标签上有method="post"。您不应将GET用于删除记录等危险操作,因此您应将接受的methods更改为['POST']

正如@Makoto所指出的那样会给你一个405错误,但你得到404错误,所以一定有另一个问题。您已经发布了如何注册蓝图,但是您的代码在哪里?使用蓝图时要注意的一点是,在注册蓝图之前需要注册所有路线。