예제 #1
0
def search():
    form = SearchForm(request.args)
    books = {}
    page = 0
    total = 0
    q = ''
    if form.validate():
        q = form.q.data
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)
        yushu = YuShuBook()
        if isbn_or_key == 'key':
            yushu.search_by_key(q, page)
        if isbn_or_key == 'isbn':
            yushu.search_by_isbn(q)
        yushu_view = BookCollection(yushu)
        books = yushu_view.books
        total = yushu_view.total
        page = page
    else:
        flash('搜索的关键字不符合要求,请重新输入关键字')
    return render_template('search.html',
                           q=q,
                           books=books,
                           total=total,
                           per_page=current_app.config['PER_PAGE'],
                           current_page=page)
예제 #2
0
파일: book.py 프로젝트: GOODLIFEZW/yushu
def search():
    """
        q :普通关键字 isbn
        page
        ?q=金庸&page=1
    """
    form = SearchForm(request.args)
    books = BookCollection()

    if form.validate():
        q = form.q.data.strip()
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)
        yushu_book = YuShuBook()

        if isbn_or_key == 'isbn':
            yushu_book.search_by_isbn(q)
        else:
            yushu_book.search_by_key(q, page)

        books.fill(yushu_book, q)
    else:
        flash('搜索的关键字不符合要求,请重新输入关键字')
        # return jsonify(form.errors)
    return render_template('search_result.html', books=books)
예제 #3
0
파일: book.py 프로젝트: xuxunxiong/yushu
def search():
    """

    :param q: key_word or isbn
    :param page:
    :return:  result
    """
    #
    # q = request.args['q']
    # page = request.args['page']

    form = SearchForm(request.args)
    books = BookCollection()

    if form.validate():
        q = form.q.data.strip()
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)

        yushu_book = YuShuBook()
        if isbn_or_key == 'isbn':
            yushu_book.search_by_isbn(q)
            books.fill(yushu_book, q)
            # result = BookViewModel.package_single(result, q)
        if isbn_or_key == 'key':
            yushu_book.search_by_key(q, page)
            books.fill(yushu_book, q)

        # return json.dumps(result), 200, {'content-type': 'application/json'}

    else:
        flash('there is no result')

    return render_template('search_result.html', books=books)
예제 #4
0
파일: book.py 프로젝트: Fessible/fisher
def search():
    """
           q :普通关键字 isbn
           ?q=金庸&page=1
    """
    # 获取请求内容
    form = SearchForm(request.args)
    books = BookCollection()

    if form.validate():
        q = form.q.data.strip()
        page = form.page.data

        # 判断是否为isbn
        isbn_or_key = is_isbn_or_key(q)
        yushu_book = YuShuBook()

        # 搜索结果,并存储到yushu_book中
        if isbn_or_key:
            yushu_book.search_by_isbn(q)
        else:
            yushu_book.search_by_key(q, page)

        # 封装数据
        books.fill(yushu_book, q)

    else:
        flash('搜索的关键字不符合要求,请重新输入关键字')
        # return jsonify(form.errors)

    # 由于books是对象,需要将对象转换成json
    # return json.dumps(books, default=lambda o: o.__dict__)
    return render_template('search_result.html', books=books)
예제 #5
0
파일: book.py 프로젝트: tongyue2018/flask
def search():

    # 至少1个字符,有长度限制。 q = request.args['q']
    # 至少1个字符,正整数。 page = request.args['page']
    '''
    验证层,from app.forms.book import SearchForm
    验证代码如下
    '''

    form = SearchForm(request.args)
    if form.validate():
        q = form.q.data.strip()  # 取值并去掉空格
        page = form.page.data

        isbn_or_key = is_isbn_or_key(q)
        yushubook = YuShuBook()
        if isbn_or_key == 'isbn':
            result = yushubook.search_by_isbn(q)
        else:
            result = yushubook.search_by_key(q, page)
        return jsonify(result)
    else:
        '''
        form异常返回
        '''
        return form.errors
예제 #6
0
파일: book.py 프로젝트: tongyue2018/flask
def search():

    # 至少1个字符,有长度限制。 q = request.args['q']
    # 至少1个字符,正整数。 page = request.args['page']
    '''
    验证层,from app.forms.book import SearchForm
    验证代码如下
    '''

    form = SearchForm(request.args)
    books = BookCollection()
    if form.validate():
        q = form.q.data.strip()  # 取值并去掉空格
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)
        yushubook = YuShuBook()

        if isbn_or_key == 'isbn':
            yushubook.search_by_isbn(q)
        else:
            yushubook.search_by_key(q, page)

        books.fill(q, yushubook)
        '''
        return jsonify(books.__dict__)
        不能直接序列化books对象 bookCollection下面的self.books是由其他对象赋值
        如果bookCollection的属性都是普通的字符 数字,则可以对books.__dict__进行序列化
        
        '''

        #对象序列化,需要传入1个函数,把所有涉及的对象转化成dict
        # return json.dumps(books,default=lambda o: o.__dict__)
    else:
        '''
        form异常返回
        '''
        # return jsonify(form.errors)
        # return jsonify({"msg":"参数错误"})
        '''
        消息闪现
        '''
        flash('关键字不符合要求,请重新输入')
    #form传入模板以后 才可以在template页面中使用,可以再base中些,其他模板可以继承
    return render_template('search_result.html', books=books, form=form)
예제 #7
0
def search():
    form = SearchForm(request.args)
    books = BookCollection()
    if form.validate():
        q = form.q.data.strip()
        page = form.page.data
        key_or_isbn = is_isbn_or_key(q)
        print(key_or_isbn)
        yushu_book = YuShuBook()
        if key_or_isbn == 'isbn':
            yushu_book.search_by_isbn(q)
        else:
            yushu_book.search_by_key(q, page)
        books.fill(yushu_book, q)
        # return json.dumps(books, default=lambda o: o.__dict__)
    else:
        # return jsonify(form.errors)
        flash("搜索的关键字不合法,请重新输入!")

    return render_template('search_result.html', books=books)
예제 #8
0
파일: book.py 프로젝트: tongyue2018/flask
def search():

    # 至少1个字符,有长度限制。 q = request.args['q']
    # 至少1个字符,正整数。 page = request.args['page']

    '''
    验证层,from app.forms.book import SearchForm
    验证代码如下
    '''

    form = SearchForm(request.args)
    books = BookCollection()
    if form.validate():
        q = form.q.data.strip() # 取值并去掉空格
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)
        yushubook = YuShuBook()

        if isbn_or_key == 'isbn':
            yushubook.search_by_isbn(q)
        else:
            yushubook.search_by_key(q,page)

        books.fill(yushubook,q)
        '''
        return jsonify(books.__dict__)  
        不能直接序列化books对象 bookCollection下面的self.books是由其他对象赋值
        如果bookCollection的属性都是普通的字符 数字,则可以对books.__dict__进行序列化
        
        '''

        #对象序列化,需要传入1个函数,把所有涉及的对象转化成dict
        return json.dumps(books,default=lambda o: o.__dict__)


    else:
        '''
        form异常返回
        '''
        return form.errors
예제 #9
0
def search():
    """
    搜索书籍路由
    """
    # 实例化我们自定义的SearchForm,需要传入一个字典作为要校验的参数
    form = SearchForm(request.args)
    # validate()方法返回True/False来标示是否校验通过
    books = BookCollection()
    # if not form.validate():
    #     # errors为错误信息提示(上面定义的message)
    #     flash("搜索的关键字不符合要求,请重新输入关键字")
    #     return render_template('search_result.html', books=books)
    # 从form中获取校验后的参数,不从request里拿,因为我们可能会对数据进行预处理或者默认值的给定
    q = form.q.data.strip()
    page = form.page.data
    isbn_or_key = is_isbn_or_key(q)
    yushu_book = YuShuBook()
    if form.validate():
        if isbn_or_key == 'isbn':
            yushu_book.search_by_isbn(q)
            books.fill(yushu_book, q)
            # print(11111, books.books)
            # for b in books.books:
            #     print('title', b.title)
            #     print('author', b.author)
        # result = YuShuBook.search_by_isbn(q)
        # result = BookViewModel.package_single(result,q)
        else:
            yushu_book.search_by_key(q, page)
            # result = YuShuBook.search_by_keyword(q,page)
            # result = BookViewModel.package_collection(result,q)
            # return jsonify(result)
            books.fill(yushu_book, q)
        Book.insert_into_sql(books.books)
    else:
        flash("搜索的关键字不符合要求,请重新输入关键字")

    # return jsonify(books)  # TypeError: Object of type BookCollection is not JSON serializable
    # return json.dumps(books, default=lambda o: o.__dict__)
    return render_template('search_result.html', books=books)
예제 #10
0
def search():
    """
    搜索书籍路由
    """
    form = SearchForm(request.args)
    if form.validate():
        q = form.q.data.strip()
        isbn_or_key = is_isbn_or_key(q)

        yushu_book = YuShuBook()

        if isbn_or_key == 'isbn':
            yushu_book.search_by_isbn(q)
        else:
            page = form.page.data
            yushu_book.search_by_key(q, page)

        books.fill(yushu_book, q)
    else:
        flash("搜索的关键字不符合要求,请重新输入关键字")

    return render_template("search_result.html", books=books)
예제 #11
0
파일: book.py 프로젝트: heylel/fisher
def search():
    """
    搜索书籍路由
    """
    form = SearchForm(request.args)
    books = BookCollection()
    if form.validate():
        q = form.q.data.strip()
        isbn_or_key = is_isbn_or_key(q)

        yushu_book = YuShuBook()

        if isbn_or_key == 'isbn':
            yushu_book.search_by_isbn(q)
        else:
            page = form.page.data
            yushu_book.search_by_key(q, page)

        books.fill(yushu_book, q)
    else:
        flash("搜索的关键字不符合要求,请重新输入关键字")

    return render_template("search_result.html", books=books)