Example #1
0
def result1(request):
    df = d_frame
    if 'book1_type' in request.POST:
        bt = request.POST['book1_type'].upper()
    else:
        bt = ""
    if 'book1_type' in request.POST:
        bt2 = request.POST['book2_type'].upper()
    else:
        bt2 = ""
    if 'book3_type' in request.POST:
        bt3 = request.POST['book3_type'].upper()
    else:
        bt3 = ""
    if 'book4_type' in request.POST:
        bt4 = request.POST['book4_type'].upper()
    else:
        bt4 = ""
    if 'book5_type' in request.POST:
        bt5 = request.POST['book5_type'].upper()
    else:
        bt5 = ""
    if bt == "NONE" and bt2 == "NONE" and bt3 == "NONE" and bt4 == "NONE" and bt5 == "NONE":
        return render(request, 'pages/NameError.html')

        # *********************************************************
        # books = df
        # books = books.loc[:, ["title", "writer", "genres", "page_num", "pub_year", "rating", "isbn", "image_url"]]
        # books = books.applymap(lambda s: s.upper() if type(s) == str else s)
        # book_types = [bt, bt2, bt3, bt4, bt5]
        # book = group(books, book_types)
        # *********************************************************

    book_types_list = [bt, bt2, bt3, bt4, bt5]
    temp_book_types_list = []
    for i in range(len(book_types_list)):
        if book_types_list[i] != "NONE":
            temp_book_types_list.append(book_types_list[i])
    type_int_list = convert_gen.convert_genres(temp_book_types_list)

    book = []
    b_list = []
    i = 0
    while i in range(len(type_int_list)):
        one_book = knn_logic.ml_logic(df, type_int_list[i])
        if one_book.isbn not in b_list:
            book.append(one_book)
            b_list.append(one_book.isbn)
        else:
            if i != 0:
                i -= 1
        i += 1
    return render(request, 'pages/result.html', {'books': book})
Example #2
0
def result2(request):
    df = d_frame
    # books = df
    # books = books.loc[:, ["title", "writer", "isbn", "page_num", "pub_year", "rating", "image_url", "genres"]]
    # books = books.applymap(lambda s: s.upper() if type(s) == str else s)
    if request.method == 'POST':
        selected_types = request.POST.getlist('ckb')
    if len(selected_types) < 3:
        return render(request, 'pages/selected_book_error.html')
    else:
        bt = selected_types[0].upper()
        bt2 = selected_types[1].upper()
        bt3 = selected_types[2].upper()

    # book_list = []
    # temp = group2(books, bt)
    # for i in range(len(temp)):
    #     book_list.append(temp[i])
    #
    # temp = group2(books, bt2)
    # for i in range(len(temp)):
    #     book_list.append(temp[i])
    #
    # temp = group2(books, bt3)
    # for i in range(len(temp)):
    #     book_list.append(temp[i])

    temp_book_types_list = [bt, bt2, bt3]
    type_int_list = convert_gen.convert_genres(temp_book_types_list)
    b_list = []
    book_list = []
    for ind in range(3):
        i = 0
        while i in range(4):
            one_book = knn_logic.ml_logic(df, type_int_list[ind])
            if one_book.isbn not in b_list:
                book_list.append(one_book)
                b_list.append(one_book.isbn)
            else:
                if i != 0:
                    i -= 1
            i += 1
    return render(request, 'pages/result.html', {'books': book_list})
 def test_a9(self):
     self.assertAlmostEqual(
         knn_logic.ml_logic(d_frame, 9).genres, "HISTORY")
 def test_a10(self):
     self.assertAlmostEqual(
         knn_logic.ml_logic(d_frame, 10).genres, "ADVENTURE")
 def test_a7(self):
     self.assertAlmostEqual(
         knn_logic.ml_logic(d_frame, 7).genres, "SCIENCE")
 def test_a8(self):
     self.assertAlmostEqual(knn_logic.ml_logic(d_frame, 8).genres, "HORROR")
 def test_a5(self):
     self.assertAlmostEqual(knn_logic.ml_logic(d_frame, 5).genres, "TRAVEL")
 def test_a6(self):
     self.assertAlmostEqual(knn_logic.ml_logic(d_frame, 6).genres, "CRIME")
 def test_a4(self):
     self.assertAlmostEqual(
         knn_logic.ml_logic(d_frame, 4).genres, "YOUNG ADULT")
 def test_a3(self):
     self.assertAlmostEqual(
         knn_logic.ml_logic(d_frame, 3).genres, "BIOGRAPHY")
 def test_a2(self):
     self.assertAlmostEqual(
         knn_logic.ml_logic(d_frame, 2).genres, "PHILOSOPHY")
 def test_a1(self):
     self.assertAlmostEqual(
         knn_logic.ml_logic(d_frame, 1).genres, "CLASSIC")
 def test_a(self):
     self.assertAlmostEqual(
         knn_logic.ml_logic(d_frame, 0).genres, "SCIENCE FICTION")