首页 > 解决方案 > 蟒蛇 | 检查 dict{} 项目是否在 list[] 中

问题描述

通过 JSONapi 调用发送的是:
{ "name":"swizz", "days": "7", "price": 2.00 }



源代码

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

app = Flask(__name__)
api = Api(app)


@app.route('/', methods=['GET', 'POST'])
def home():
    return 'Tiny'

plant_list = []
class Plant(Resource):
    def get(self, name):
        return {'Name':name}, 200

    def post(self, name):
        payload = request.get_json()
        for x in range(0, len(plant_list)):
            if payload['name'] == plant_list[x]['name']:
                return {'message': f'''Item {payload['name']} already stored in database.'''}
            else:
                plant_list.append(payload)
            return plant_list, 201


api.add_resource(Plant, '/plant/<string:name>')

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

标签: pythonpython-3.xflask

解决方案


您正在将 plant_list 设置为全局。如果你想在一个类中使用它,你应该在你的类的函数中定义它:

plant_list = []
class Plant(Resource):
    ....
    def post(self, name):
        global plant_list
        ....

不知道为什么需要它作为全局变量。也许你想要:

class Plant(Resource):
    plant_list = []
    ....
    def post(self, name):
        ....

推荐阅读