如何结合Flask REST API和Flask Web应用程序?
我正在尝试将api和应用程序结合起来,但我在POST上遇到了问题 当我尝试使用Web应用程序GUI发布“项目”时,我会收到: 方法不允许 请求的URL不允许使用该方法。 主要部分 应用程序部分 我的观点是,我想通过GUI、表单如何结合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.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
}