如何使用Python模拟Java Springs@PathVariable

如何使用Python模拟Java Springs@PathVariable,python,python-3.x,flask,flask-restful,Python,Python 3.x,Flask,Flask Restful,其思想是,当向/user/1发出GET请求时,GET方法返回user\u dict的键/值对。如何在Python中处理路径变量?请假定字典不是空的。Flask用于URL路径注册 这在烧瓶Restful中所示的示例中使用: class TodoSimple(资源): def get(自身、待办事项id): 返回{todo_id:todos[todo_id]} def put(自身、待办事项id): todos[todo_id]=请求.表单['data'] 返回{todo_id:todos[todo

其思想是,当向/user/1发出GET请求时,GET方法返回
user\u dict
的键/值对。如何在Python中处理路径变量?请假定字典不是空的。

Flask用于URL路径注册

这在烧瓶Restful中所示的示例中使用:

class TodoSimple(资源):
def get(自身、待办事项id):
返回{todo_id:todos[todo_id]}
def put(自身、待办事项id):
todos[todo_id]=请求.表单['data']
返回{todo_id:todos[todo_id]}
api.add_资源(TodoSimple,“/”)
这里的
是一个路径变量,作为参数传递给
TodoSimple.get()
TodoSimple.put()
方法

Flask Restful否则假设您对Flask的模式非常熟悉,我强烈建议您至少通读一下Flask,如果没有其他内容,我建议您也通读一下

对于您的特定示例,如果用户ID始终为整数,请使用:

from flask import Flask, jsonify, request
from flask_restful import Api, Resource

app = Flask(__name__)
api = Api(app)
user_dict = {}


class User(Resource):
    def __init__(self):
        user_id = 0

    def get(self):
        return jsonify(user_dict[id])

api.add_resource(User, "/user")

if __name__ == "__main__":
    app.run(debug=True)
类用户(资源):
def get(自我,用户id):
返回jsonify(用户指令[user\u id])
api.add_资源(User,“/User/”)

看来POST需要在一个单独的类中。这与JavaSpring有很大不同。感谢您提供文档链接。@juice:是的,Flask Resources使用的视图类是按路径的。在RESTful API中,创建新资源时使用对基本URL的POST,而对单个资源的访问则访问基本URL加标识符,因此这些是独立的路由和独立的视图。
class User(Resource):
    def get(self, user_id):
        return jsonify(user_dict[user_id])

api.add_resource(User, "/user/<int:user_id>")