如何结合Flask REST API和Flask Web应用程序?

如何结合Flask REST API和Flask Web应用程序?,flask,flask-restful,flask-appbuilder,Flask,Flask Restful,Flask Appbuilder,我正在尝试将api和应用程序结合起来,但我在POST上遇到了问题 当我尝试使用Web应用程序GUI发布“项目”时,我会收到: 方法不允许 请求的URL不允许使用该方法。 主要部分 应用程序部分 我的观点是,我想通过GUI、表单 api.add_resource(Item, '/api/v1/item/<string:name>') if __name__ == '__main__': db.init_app(app) app.run(port=5001, debug

我正在尝试将api和应用程序结合起来,但我在POST上遇到了问题

当我尝试使用Web应用程序GUI发布“项目”时,我会收到: 方法不允许 请求的URL不允许使用该方法。

主要部分 应用程序部分 我的观点是,我想通过GUI、表单

api.add_resource(Item, '/api/v1/item/<string:name>')

if __name__ == '__main__':
    db.init_app(app)
    app.run(port=5001, debug=True)
class Item(Resource):
    parser = reqparse.RequestParser()
    parser.add_argument('price',
                    type=float,
                    required=True,
                    help="This field cannot be left blank!"
                    )
    parser.add_argument('store_id',
                    type=int,
                    required=True,
                    help="Every item needs a store id."
                    )

    def post(self, name):
        if ItemModel.find_by_name(name):
            return {'message': "An item with name '{}' already exists.".format(name)}, 400

        data = Item.parser.parse_args()
        item = ItemModel(name, **data)  # data['price'], data['store_id']

        try:
            item.save_to_db()
        except:
            return {"message": "An error occured inserting the item."}, 500  # Internal Server error

        return item.json(), 201
@app.route('/item/<name>', methods=['POST'])
def item(name):
    data = {
        'price': '16.99',
        'store_id': '1',
    }

    r = requests.post('http://localhost:5001/api/v1/item/'+name, data)
    return r.status_code
class ItemModel(db.Model):
     __tablename__ = 'items'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    price = db.Column(db.Float(precision=2))
    store_id = db.Column(db.Integer, db.ForeignKey('stores.id'))

    store = db.relationship("StoreModel")

def __init__(self, name, price, store_id):
    self.name = name
    self.price = price
    self.store_id = store_id

def json(self):
    return {
            'id': self.id,
            'name': self.name,
            'price': self.price,
            'store_id': self.store_id
        }