Example #1
0
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
    })
Example #2
0
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})
Example #3
0
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})
Example #4
0
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