def delete(mov_id):
     print('***** MOVIE DELETE *****')
     movie = MovieDao.find_by_id(mov_id)  # Primary Key로 삭제하려는 리뷰의 Row를 불러옴.
     try:
         MovieDao.delete_movie(movie.mov_id)  # 해당 리뷰를 데이터베이스에서 삭제
         return {'code': 0, 'message': 'SUCCESS'}, 200
     except:
         return {'message': 'An error occured deleting the movie'}, 500
Esempio n. 2
0
 def find_all(cls):
     sql = cls.query
     df = pd.read_sql(sql.statement, sql.session.bind)
     df_movie_id = df['mov_id']
     print(df_movie_id[0])
     print(len(df['mov_id']))
     count = 0
     for movie in df_movie_id:
         df_movie_id[count] = MovieDao.find_by_id(movie).title_kor 
         print(MovieDao.find_by_id(movie).title_kor)
         count += 1
     return json.loads(df.to_json(orient='records'))
 def get(self, title):
     print('***** MOVIE SEARCH *****')
     movie = MovieDao.find_by_title(title)
     movielist = []
     for d in movie:
         movielist.append(d.json())
     return movielist
Esempio n. 4
0
    def post():
        print('*****')
        parser = reqparse.RequestParser()
        parser.add_argument('mov_id', type=str, required=True, help='This field should be a movieid')     
        args = parser.parse_args()
        print('*********')
        print(f'{args}')
        print('*********')
        movieid = args['mov_id']
        print(movieid)

        try:
            MovieDao.delete_movie(movieid)
            return{'code':0, 'message':'SUCCESS'}, 200
        except:
            return {'message':'An error occured registering the movie'}, 500
Esempio n. 5
0
 def find_by_movie_title(cls, movie_title):
     print("FIND BY MOVIE TITLE 진입 !")
     Session = openSession()
     session = Session()
     mov_id = MovieDao.find_by_title_return_id(movie_title)
     newtables = session.query(cls, MovieDto.title_kor, UserDto.fname).filter(MovieDto.mov_id.like(mov_id))\
         .filter(cls.mov_id.like(mov_id)).filter(cls.usr_id.like(UserDto.usr_id))
     df = pd.read_sql(newtables.statement, newtables.session.bind)
     print(df)
     return json.loads(df.to_json(orient='records'))
Esempio n. 6
0
 def get(id: str):
     print('##### get #####')
     print(id)
     try:
         reco_movie = MovieDao.find_by_title(id)
         data = reco_movie.json()
         print(data)
         return data, 200
     except:
         print('fail')
         return {'message': 'Title not found'}, 404
Esempio n. 7
0
 def get():
     print("Top Movie 진입")
     rank = ReviewDao.group_by_for_top(
     )  # 영화 = Key, 점수 = Value로 분류한 Dict를 받아옴.
     movie_top_by_review = max(rank,
                               key=rank.get)  # Dict내 Value 점수가 가장 높은 영화 찾기.
     print(movie_top_by_review)
     top_movie_info = MovieDao.find_by_title(
         movie_top_by_review)  # 해당 영화의 정보를 받아옴
     print('# * 30')
     return top_movie_info[0].json(
     )  # 해당 정보가 리스트에 담겨 있어 인덱싱으로 꺼내온 후 json화하여 리턴한다.
Esempio n. 8
0
 def get(self, title):
     print("SEARCH 진입")
     print(f'타이틀 : {title}')
     movie = MovieDao.find_by_title(title)
     # review = {review[i]: review[i + 1] for i in range(0, len(review), 2)}
     # review = json.dump(review)
     movielist = []
     # for review in reviews:
     # reviewdic
     for rev in movie:
         movielist.append(rev.json())
     # print(f'Review type : {type(review[0])}')
     print(f'Review List : {movielist}')
     return movielist[:]
    def get(self, title_naver_eng):
        print("영화 추천")
        print(f'ID : {title_naver_eng}')

        ai = self.movieai
        recommendation_df = ai.hook(title_naver_eng)
        print(recommendation_df)
        recommendation_mov_id = recommendation_df['id']
        print(recommendation_mov_id)
        mov_id_list = recommendation_df['id'].tolist()
        print(mov_id_list)


        # a = MovieDao.find_by_id(mov_id_list[0])
        # print(a)
        # print(a.json())
        movie_list = []
        for i in mov_id_list:
            print(i)
            try:
                movie = MovieDao.find_by_id(i)
                movie_list.append(movie)
            except:
                print('없는 영화')
            if len(movie_list) >= 6:
                break

        movie_json_list = []
        for d in movie_list:
            movie_json_list.append(d.json())
        
        print('***** end *****')
        print(movie_json_list)

        return movie_json_list

# if __name__ == "__main__":
#     t = MovieRecommendation()
#     t.hook()
Esempio n. 10
0
 def put():
     parser = reqparse.RequestParser()
     parser.add_argument('mov_id',
                         type=int,
                         required=True,
                         help='This field should be a movieid')
     parser.add_argument('title_kor',
                         type=str,
                         required=True,
                         help='This field should be a title_kor')
     parser.add_argument('title_naver_eng',
                         type=str,
                         required=True,
                         help='This field should be a title_naver_eng')
     parser.add_argument('genres_kor',
                         type=str,
                         required=True,
                         help='This field should be a genres_kor')
     parser.add_argument('keyword_kor',
                         type=str,
                         required=True,
                         help='This field should be a keyword_kor')
     parser.add_argument('running_time_kor',
                         type=int,
                         required=True,
                         help='This field should be a running_time_kor')
     parser.add_argument('year_kor',
                         type=str,
                         required=True,
                         help='This field should be a year_kor')
     parser.add_argument('director_naver_kor',
                         type=str,
                         required=True,
                         help='This field should be a director_naver_kor')
     parser.add_argument('actor_naver_kor',
                         type=str,
                         required=True,
                         help='This field should be a actor_naver_kor')
     parser.add_argument('movie_l_rating',
                         type=float,
                         required=True,
                         help='This field should be a movie_l_rating')
     parser.add_argument('movie_l_rating_count',
                         type=int,
                         required=True,
                         help='This field should be a movie_l_rating_count')
     parser.add_argument('movie_l_popularity',
                         type=float,
                         required=True,
                         help='This field should be a movie_l_popularity')
     parser.add_argument('link_naver',
                         type=str,
                         required=True,
                         help='This field should be a link_naver')
     parser.add_argument('image_naver',
                         type=str,
                         required=True,
                         help='This field should be a image_naver')
     args = parser.parse_args()
     print(args)
     movies = MovieDto(args['mov_id'], \
                     args['title_kor'], \
                     args['title_naver_eng'], \
                     args['genres_kor'], \
                     args['keyword_kor'], \
                     args['running_time_kor'], \
                     args['year_kor'], \
                     args['director_naver_kor'], \
                     args['actor_naver_kor'], \
                     args['movie_l_rating'], \
                     args['movie_l_rating_count'], \
                     args['movie_l_popularity'], \
                     args['link_naver'], \
                     args['image_naver'])
     print('*********')
     print(f'{args}')
     try:
         MovieDao.modify_movie(args)
         return {'code': 0, 'message': 'SUCCESS'}, 200
     except:
         return {'message': 'An error occured registering the movie'}, 500
Esempio n. 11
0
 def get():
     data = MovieDao.find_all()
     print(data[0])
     return data, 200
Esempio n. 12
0
 def post():
     rmd = MovieDao()
     rmd.bulk()
Esempio n. 13
0
app = Flask(__name__)
CORS(app, resources={r'/api/*': {"origins": "*"}})

app.config['SQLALCHEMY_DATABASE_URI'] = url
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)
api = Api(app)

with app.app_context():
    db.create_all()

with app.app_context():
    print('***** 데이터 DB 삽입 *****')
    count_user = UserDao.count()
    count_actor = ActorDao.count()
    count_movie = MovieDao.count()
    count_rating = RatingDao.count()
    count_review = ReviewDao.count()

    print(f'USR TABLE COUNT : {count_user[0]:6}')
    print(f'ACT TABLE COUNT : {count_actor[0]:6}')
    print(f'MOV TABLE COUNT : {count_movie[0]:6}')
    print(f'RAT TABLE COUNT : {count_rating[0]:6}')
    print(f'REV TABLE COUNT : {count_review[0]:6}')

    if count_user[0] == 0:
        print('***** USR DATA INSERT *****')
        UserDao.bulk()

    if count_actor[0] == 0:
        print('***** ACT DATA INSERT *****')
Esempio n. 14
0
 def get():
     print('***** MOVIE ALL LIST RANDOM *****')
     data = MovieDao.find_all_sort_random()
     return data, 200
Esempio n. 15
0
 def post():
     print('***** MOVIE DB INSERT *****')
     rmd = MovieDao()
     rmd.bulk()
Esempio n. 16
0
 def post():
     print('***** MOVIE REGISTER *****')
     parser.add_argument('mov_id',
                         type=int,
                         required=False,
                         help='This field should be a movieid')
     parser.add_argument('title_kor',
                         type=str,
                         required=True,
                         help='This field should be a title_kor')
     parser.add_argument('title_naver_eng',
                         type=str,
                         required=True,
                         help='This field should be a title_naver_eng')
     parser.add_argument('genres_kor',
                         type=str,
                         required=True,
                         help='This field should be a genres_kor')
     parser.add_argument('keyword_kor',
                         type=str,
                         required=True,
                         help='This field should be a keyword_kor')
     parser.add_argument('running_time_kor',
                         type=int,
                         required=True,
                         help='This field should be a running_time_kor')
     parser.add_argument('year_kor',
                         type=str,
                         required=True,
                         help='This field should be a year_kor')
     parser.add_argument('director_naver_kor',
                         type=str,
                         required=True,
                         help='This field should be a director_naver_kor')
     parser.add_argument('actor_naver_kor',
                         type=str,
                         required=True,
                         help='This field should be a actor_naver_kor')
     parser.add_argument('movie_l_rating',
                         type=float,
                         required=True,
                         help='This field should be a movie_l_rating')
     parser.add_argument('movie_l_rating_count',
                         type=int,
                         required=True,
                         help='This field should be a movie_l_rating_count')
     parser.add_argument('movie_l_popularity',
                         type=float,
                         required=True,
                         help='This field should be a movie_l_popularity')
     parser.add_argument('link_naver',
                         type=str,
                         required=True,
                         help='This field should be a link_naver')
     parser.add_argument('image_naver',
                         type=str,
                         required=True,
                         help='This field should be a image_naver')
     args = parser.parse_args()
     try:
         MovieDao.register_movie(args)
         return {'code': 0, 'message': 'SUCCESS'}, 200
     except:
         return {'message': 'An error occured registering the movie'}, 500