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)
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
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': '服务器内部错误'})
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":"参数校验失败"})
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'}
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)
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'}
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)
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)
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)
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'}
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)
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)
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)
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)
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)
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)
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)
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': '参数校验失败'})
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)
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方法,可代替下面代码。
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' }
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)
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)
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': '参数校验失败'})
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': '校验参数失败'})
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)
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)
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)
def search(q, page): isbn_or_key = is_isbn_or_key(q) if isbn_or_key: YuShuBook.search_by_isbn(q)