示例#1
0
def search(q, page):
    isbn_or_key = is_isbn_or_key(q)
    if is_isbn_or_key == 'isbn':
        YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)

    return jsonify(result)
示例#2
0
 def can_save_to_list(self, isbn):
     if is_isbn_or_key(isbn) != 'isbn':
         return False
     yushu_book = YuShuBook()
     yushu_book.search_by_isbn(isbn)
     if not yushu_book.first():
         return False
     gifting = Gift.query.filter_by(uid=self.id, isbn=isbn,
                                    launched=False).first()
     wishing = Wish.query.filter_by(uid=self.id, isbn=isbn,
                                    launched=False).first()
     if not gifting and not wishing:
         return True
     else:
         return False
示例#3
0
def search():
    """
        :param
        q - 普通关键字或者 ISBN
        page
        ?q=...&page=...
    """

    # request 需要时视图函数中使用,这是一种代理模式。类似 express 传入的 request
    # request.args 返回的是 immutablemultidict
    # 如果要转成普通字典,可以:temp = request.args.to_dict()

    # 参数验证
    # 至少一个字符,长度限制
    # 正整数,需要最大值限制
    # 这里使用 wtforms 库

    try:
        q = request.args['q']
        page = request.args['page']
        form = SearchForm(request.args)
        if form.validate():
            q = form.q.data.strip()
            page = form.page.data
            isbn_or_key = is_isbn_or_key(q)
            if isbn_or_key == 'isbn':
                result = YuShuBook.search_by_isbn(q, page)
            else:
                result = YuShuBook.search_by_keyword(q, page)
            return jsonify(result)
        else:
            return jsonify(form.errors)
    except:
        return jsonify({'msg': '服务器内部错误'})
示例#4
0
def search():
    """
    搜索中不做关键组区分
        q:普通关键字   isbn搜索
        isbn13 13个0-9的数字组成
        isbn10 10个0-9数字组成,含有一些 “-”
        page
        ?q=金庸&page=1
        request 获取几乎全部的HTTP的请求信息,包括查询参数  POST参数  remote  IP等
    :return:
    """

    #通过request来获取查询参数(?q=金庸&page=1)

    # q至少要有一个字符,长度也应该有限制
    # q = request.args["q"]
    #页数必须为正整数,也要有一个最大值限制
    # page = request.args["page"]

    # 验证层
    form = SearchForm(request.args)
    #调用form的validate来验证
    if form.validate():     #验证为true时
        q = form.q.data.strip()
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)
        if isbn_or_key == 'isbn':
            result = YuShuBook.search_by_isbn(q)
        else:
            result = YuShuBook.search_by_keyword(q)
        #dict序列化
        return jsonify(result)  #等同于下行代码
        # return json.dumps(result),200,{'content-type':'application/json'}
    else:
        return jsonify({"msg":"参数校验失败"})
示例#5
0
def search(q, page):
    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)
    print(result)
    return json.dumps(result), 200, {'content-type': 'application/json'}
示例#6
0
def search():
    form = SearchForm(request.args)
    books = BookCollection()
    q = form.q.data.strip()
    page = form.page.data

    if form.validate():
        book = YuShuBook()

        if isbn_or_key(q) == 'isbn':
            book.search_by_isbn(q)
            return jsonify(book)
        else:
            book.search_by_keyword(q, page)

        books.fill(book, q)
        return json.dumps(books, default=lambda o: o.__dict__)
    else:
        return jsonify(form.errors)
示例#7
0
def search():
    """

    """
    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)
    # dict 序列化
    return json.dumps(result), 200, {'conttype':'application/json'}
示例#8
0
def search(q, page):
    """
    q: 普通关键字 or isbn
    page: 分页标识
    """
    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)

    return jsonify(result)
示例#9
0
def search(q, page):
    """
        q普通关键字 isbn  isbn13:13位数字   isbn10:0到9,中间包含'-'
        page
    """
    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)
    # return json.dumps(result), 200, {'content-type' : 'application/json'}
    return jsonify(result)
示例#10
0
def search(q, page):
    """
        q :普通关键字 isbn
        page
    """
    # isbn isbn13 由13个0-9的数字组成
    # isbn10 10个数字组成,含有一些'-'
    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)
    return jsonify(result)
示例#11
0
文件: book.py 项目: qujinliang/fisher
def search(q, page):
    """
    :param q:
    :param page:
    :return:
    """
    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)
    return jsonify(result)
    # return json.dumps(result), 200, {'content-type':'application/json'}
示例#12
0
文件: book.py 项目: diskbank/fisher
def search():
    '''
        q:普通关键字  isbn
        page
    '''
    q = request.args['q']
    page = request.args['page']
    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        rsult = YuShuBook.search_by_keyword(q)
    return jsonify(result)
示例#13
0
def search(query, page):
    """
        query : key word, isbn
        page
    """
    isbn_or_key = is_isbn_or_key(query)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(query)
    else:
        result = YuShuBook.search_by_keyword(query)
        # API
    # return json.dumps(result), 200, {'content-type':'application/json'}
    return jsonify(result)
示例#14
0
def search(q, page):
    """
    q : 普通关键字 isbn
    page:
    :return:
    """
    isbn_or_key = is_isbn_or_key(q)
    if is_isbn_or_key() == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)
        # API
    return jsonify(result)
示例#15
0
def search(q, page):
    """
    :param q: 关键字或者 isbn(图书编号,isbn13 由13个0到9的数字组成,isbn10 由 '-' 和10个0到9的数字组成)
    :param page:
    :return:
    """
    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)
    # return json.dumps(result), 200, {'content-type': 'application/json'}
    # API 把数据用 json 格式返回到客户端
    return jsonify(result)
示例#16
0
def search_book():
    d = {"q": request.args['q'], "page": request.args['page']}
    d1 = ImmutableMultiDict(d)
    form = SearchBook(request.args)
    if form.validate():
        q = form.q.data.strip()
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)
        if isbn_or_key == 'isbn':
            result = YuShuBook.search_by_isbn(q, page)
        elif isbn_or_key == 'key':
            result = YuShuBook.search_by_keyword(q, page)
        return jsonify(result)
    else:
        return jsonify(form.errors)
示例#17
0
def search(q, page):
    """
    q:普通关键字 or isbn(一组数字)--如何鉴别
    page:strat count
    :return:
    """
    # isbn13 13个0-9的数字组合
    # isbn10 不怎么用,含有一些' _'

    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)
    return jsonify(result)
示例#18
0
def search():
    # request链接末端的?参数方式获取参数,request对象是由http请求触发的,所以必须放在视图函数中
    form = SearchForm(request.args)
    if form.validate():
        q = form.q.data.strip()
        # strip()去除前后的空格
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)
        if isbn_or_key == 'isbn':
            result = YuShuBook.search_by_isbn(q)
        else:
            result = YuShuBook.search_by_keyword(q, page)
        # flask的jsonify,将信息(包括status code和headers)封装成json格式返回
        return jsonify(result)
    else:
        return jsonify(form.errors)
示例#19
0
def search():
    q = request.args['q']
    page = request.args['page']

    form = SearchForm(request.args)
    if form.validate():
        q = form.q.data.strip()
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)
        if isbn_or_key == 'isbn':
            result = YuShuBook.search_by_isbn(q)
        else:
            result = YuShuBook.search_by_keyword(q)
        return jsonify(result)
    else:
        return jsonify({'msg': '参数校验失败'})
示例#20
0
文件: fisher.py 项目: EmyTest/fisher
def search(q, page):
    #以下代码是用来判断q是isbn还是关键字
    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)
        #难点:路由(url)的设计
        #dict 序列化
        #API + JS(单页面,NG、VUE、React 前后端分离 SEO
        #TPS + 小程序 + webview
        #网站 多页面 ajax
        #对立
        # C GO
        #API
    return jsonify(result)
示例#21
0
def search():  #接收q和page的参数。
    '''
    ?q=金庸&page=1,让q作为查询参数
    q,普通关键字和page isbn参数。需要编写代码来判断到底是调用的普通关键字还是isbn
    page
    s视图函数不能写太复杂太长的代码,方便后期阅读维护
    '''
    # app.add_url_rule('url',view_func=,endpoint= )
    # Request Response#(通过Request实例化对象来进行)
    # 几乎包含所有http请求信息
    # 查询参数 remote
    isbn_or_key = is_isbn_or_key(q)  #这实际上就是一种封装
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)
    return jsonify(result)  #pythonFlask自带返回json方法,可代替下面代码。
示例#22
0
文件: book.py 项目: quanjin24k/Python
def search(num):
    """
        q: 普通关键词 isbn
        page:
    """
    # 兼容用户在前后输入空格
    num_key = num.strip()
    isbn_or_key = is_isbn_or_key(num_key)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(num_key)
    else:
        result = YuShuBook.search_by_keyword(num_key)
        # dict 序列化
        # API
    # return jsonify(result)
    return json.dumps(result, ensure_ascii=False), 200, {
        'content-type': 'application/json'
    }
示例#23
0
def search():
    """
        q :普通关键字 isbn
        page
    :return:
    """
    form = SearchForm(request.args)  # 调用验证器
    if form.validate():
        q = form.q.data.strip()
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)
        if isbn_or_key == 'isbn':
            result = YuShuBook.search_by_isbn(q)
        else:
            result = YuShuBook.search_by_keyword(q)
        return jsonify(result)
    else:
        return jsonify(form.errors)
示例#24
0
文件: book.py 项目: biao2789/myfisher
def search():
    # q = request.args['q']
    # page = request.args['page']

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

        if isbn_or_key == "isbn":
            result = YuShuBook.search_by_isbn(q)
        else:
            result = YuShuBook.search_by_keyword(q, page)
        return jsonify(result)
    else:
        return jsonify(form.errors)
示例#25
0
文件: book.py 项目: CGD1998/9.19
def search(q, page):
    """
    q:普通关键字 or isbn(一组数字)--如何鉴别
    page:strat count
    ?q=金庸&page=1
    :return:
    """
    form = SearchFrom(request.args)
    if form.validate():
        q = form.q.data
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)
        if isbn_or_key == 'isbn':
            result = YuShuBook.search_by_isbn(q)
        else:
            result = YuShuBook.search_by_keyword(q)
        return jsonify(result)
    else:
        return jsonify({'msg': '参数校验失败'})
示例#26
0
def search():
    """
    :param q: 普通关键字
    :param page:
    :return:
    """
    form = SearchForm(request.args)
    if form.validate():
        q = form.q.data.strip()
        page = form.page.data

        isbn_or_key = is_isbn_or_key(word=q)
        if isbn_or_key == 'isbn':
            result = YuShuBook.search_by_isbn(q)
        else:
            result = YuShuBook.search_by_keyword(q, page)

        return jsonify(result)
    else:
        return jsonify({'msg': '校验参数失败'})
示例#27
0
def search():
    """
    搜索书籍
    :param q: 搜索关键字  或  isbn
    :param page:
    """
    search_validator = SearchForm(request.args)

    if search_validator.validate():

        q = search_validator.q.data.strip()
        page = search_validator.page.data

        isbn_or_key = helper.verify_isbn_or_word(q)
        if isbn_or_key == "isbn":
            result = YuShuBook.search_by_isbn(q)
        else:
            result = YuShuBook.search_by_keyword(q, page)

        return json.dumps(result), 200, {"content-type": "application/json"}
    else:
        return jsonify(search_validator.errors)
示例#28
0
def search():
    """
        q:普通关键字 isbn
        page
        isbn
    :return:
    """
    # Request Response
    q = request.args["q"]
    page = request.args["page"]
    form = SearchForm(request.args)
    if form.validate():
        q = form.q.data.strip()
        page = form.page.data
        isbn_or_key = is_isbn_or_key(q)
        if isbn_or_key == "isbn":
            result = YuShuBook.search_by_isbn(q)
        else:
            result = YuShuBook.search_by_keyword(q)
        return jsonify(result)
    else:
        return jsonify(form.errors)
示例#29
0
文件: first.py 项目: CGD1998/9.3
def search(q, page):
    """
    q:普通关键字 or isbn(一组数字)--如何鉴别
    page:strat count
    :return:
    """
    # isbn13 13个0-9的数字组合
    # isbn10 不怎么用,含有一些' _'

    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key == 'isbn':
        result = YuShuBook.search_by_isbn(q)
    else:
        result = YuShuBook.search_by_keyword(q)
        #dict序列化
        #API
        #API + JS(单页面、NG、VUE、React) 前后端分离 SEO
        #TPS + 小程序 webview
        #网站(多页面) ajax
        #对立
        # C GO
    return jsonify(result)
示例#30
0
def search(q, page):
    isbn_or_key = is_isbn_or_key(q)
    if isbn_or_key:
        YuShuBook.search_by_isbn(q)