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)
这个想法是,当对/ user / 1发出GET请求时,get方法将返回user_dict
的键/值对。如何在Python中执行路径变量?请假定字典不为空。
答案 0 :(得分:1)
Flask在URL路径注册中使用<variable_name>
or <converter:variable_name>
placeholders。
这在Flask-Restful Quickstart documentation中显示的示例中使用:
class TodoSimple(Resource):
def get(self, todo_id):
return {todo_id: todos[todo_id]}
def put(self, todo_id):
todos[todo_id] = request.form['data']
return {todo_id: todos[todo_id]}
api.add_resource(TodoSimple, '/<string:todo_id>')
<string:todo_id>
是一个路径变量,作为参数传递给TodoSimple.get()
和TodoSimple.put()
方法。
Flask-Restful假定您大致熟悉Flask的模式,我强烈建议您至少通读Flask Quickstart document,如果没有其他情况,我建议您也阅读tutorial。 / p>
对于您的特定示例,如果用户ID始终是整数,请使用:
class User(Resource):
def get(self, user_id):
return jsonify(user_dict[user_id])
api.add_resource(User, "/user/<int:user_id>")