Untitled
unknown
python
a year ago
1.9 kB
6
Indexable
from flask import Flask from flask_restful import request, Api, abort, reqparse, Resource, fields, marshal_with from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) api = Api(app) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db' db = SQLAlchemy(app) class VideoModel(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) views = db.Column(db.Integer, nullable=False) likes = db.Column(db.Integer, nullable=False) def __repr__(self): return f"video(name = {name}, views = {views}, likes = {likes} )" video_put_args = reqparse.RequestParser() video_put_args.add_argument("name", type=str, help="Name of the video is required", required=True) video_put_args.add_argument("views", type=int, help="Views of the video is required", required=True) video_put_args.add_argument("likes", type=int, help="Likes of the video is required", required=True) resourse_fields = { 'id': fields.Integer, 'name': fields.String, 'likes': fields.Integer } def abort_if_video_id_doesnt_exist(video_id): if video_id not in videos: abort(404, message="Video not found.") def abort_if_video_exists(video_id): if video_id in videos: abort(409, message="Video already exists with that ID...") class Video(Resource): def get(self, video_id): result = VideoModel.query.get(id=video_id) return result def put(self, video_id): abort_if_video_exists(video_id) args = video_put_args.parse_args() videos[video_id] = args return videos[video_id], 201 def delete(self, video_id): abort_if_video_id_doesnt_exist(video_id) del videos[video_id] return '', 204 api.add_resource(Video, "/video/<int:video_id>") if __name__=="__main__": app.run(debug=True)
Editor is loading...
Leave a Comment