6.5 从json序列化看代码解释权反转
转移解释权
这种转移解释权的思想可以通过函数式编程的方式非常简单巧妙的实现:
@web.route("/book/search/")
def search():
"""
搜索书籍路由
"""
form = SearchForm(request.args)
if not form.validate():
return jsonify(form.errors)
q = form.q.data.strip()
isbn_or_key = is_isbn_or_key(q)
books = BookCollection()
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)
return json.dumps(books, default=lambda o: o.__dict__)Last updated
Was this helpful?