无法使用 Flask 实现 PUT 请求-RESTful

Fail to implement PUT request with Flask-RESTful

我正在尝试使用 Flask-RESTful 实现 REST API。我的 API 包含 4 个请求:GET、POST、PUT、DELETE。除了 PUT 请求外,一切都完美无缺。它不断返回状态代码 404,未找到所请求的 URL。我正在使用 Postman 来测试我的 API。这是我的代码。任何人都可以告诉我我在哪里做错了吗?谢谢!

# Small API project using Flask-RESTful
from flask import Flask, request
from flask_restful import Resource, Api, reqparse
from flask_jwt import JWT, jwt_required

app = Flask(__name__)
# Encrypted key
app.secret_key = "Nam Dao"
api = Api(app)

students = []

class Student(Resource):
    parser = reqparse.RequestParser()
    parser.add_argument("major", type=str, required=True, help="This field cannot be left blank")

    def get(self, name):
        # filter function will return a filter object
        # next function will get the "next" student in the filter object.
        # if the Next function does not return anything => return None.
        for student in students:
            if student["name"] == name:
                return student, 200
        return {"message": "student not found"}, 404

    def post(self, name):
        if next(filter(lambda x: x["name"] == name, students), None) is not None:
            return {"message": f"A student with the name {name} already exists"}, 400

        request_data = self.parser.parse_args()

        print(request_data)
        student = {"name": name, "major": request_data["major"]}
        students.append(student)
        return student, 201

    def delete(self, name):
        for student in students:
            if student["name"] == name:
                students.remove(student)
                return {"message": "Item deleted"}, 200
        return {"message": "No student found"}, 204

    def put(self, name):
        data = request.get_json()
        for student in students:
            if student["name"] == name:
                student["major"] = data["major"]
                return {"message": "Student Major Changed"}, 200
        student = {"name": data["name"], "major": data["major"]}
        students.append(student)
        return {"message": "Student Added"}, 200

api.add_resource(Student, "/student/<string:name>")

class StudentsList(Resource):
    def get(self):
        return {"students": students}, 200

api.add_resource(StudentsList, "/students")

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

我再次检查了我的 URL,我少了一封信,这就是 returns 404 状态代码的原因。这是一个非常愚蠢的错误。一切正常