def book_detail(request, title_id): data = Title.objects.filter(id__exact=title_id).first() detail = Title.book_info_as_dict(data) return render(request, 'site/book/detail.html', { 'detail': detail, 'title_id': title_id })
def get_recommendation_hybrid(request): if not request.user.is_authenticated: return JsonResponse({'status': 401, 'error': "Please login to get suggestion"}) current_user_id = 5 title_rs_df = pd.DataFrame(rs.get_top_recs_using_hybrid(current_user_id)) title_id_list = list(title_rs_df.title_id) title_list = Title.objects.filter(id__in=title_id_list) title_list = [Title.book_info_as_dict(book) for book in title_list] rs_df = pd.DataFrame.from_dict(title_list) rs_df = pd.merge(rs_df, title_rs_df, left_on='id', right_on='title_id') rs_df = rs_df.sort_values(by=['rating'], ascending=False).reset_index( drop=True) json_data = list(rs_df.apply(lambda x: x.to_json(), axis=1)) # print(json_data) data = {'book_list': json.dumps(json_data)} return JsonResponse({'status': 200, 'data': data})
def get_recommendation_cb(request): title_id = request.GET["title_id"] book_id_list = rs.get_top_recs_using_content_based(title_id) string_book_list = str(book_id_list).replace('[', '').replace(']', '') query = """ SELECT `title`.* FROM `title` LEFT JOIN `book_similarity` ON `title`.`id` = `book_similarity`.`target` WHERE `title`.id IN ({0}) and `book_similarity`.source = {1} ORDER BY `book_similarity`.similarity DESC; """ query = query.format(string_book_list, title_id) book_list = Title.objects.raw(query) # book_list = Title.objects.filter(id__in=book_id_list) book_list = [Title.book_info_as_dict(book) for book in book_list] data = {'book_list': json.dumps(book_list)} return JsonResponse({'status': 200, 'data': data})
def get_popular_book(request): popular_book = rs.get_popular_book() popular_book_list = Title.objects.all().filter(id__in=popular_book) popular_book_list = [Title.book_info_as_dict(book) for book in popular_book_list] data = {'popular_book_list': json.dumps(popular_book_list)} return JsonResponse({'status': 200, 'data': data})
def load_data(): db_book_list = Title.objects.all().order_by('id') db_book_list = [Title.book_info_as_dict(book) for book in db_book_list] db_book_list = pd.DataFrame.from_dict(db_book_list, orient='columns') db_book_list['type'] = 'database' return db_book_list