一. 书籍搜索与查询
1. 数据API
关键字搜索
http://t.yushu.im/v2/book/search?q={}&start={}&count={}
isbn搜索
http://t.yushu.im/v2/book/isbn/{isbn}
豆瓣API
http://api.douban.com/v2/book
2. 搜索关键字
实现搜索书籍的视图函数search , 修改fisher.py
from flask import Flask
app = Flask(__name__)
app.config.from_object('config') # 传入模块的路径
@app.route('/book/search/<q>/<page>') # <>表示传入参数
def search(q, page):
"""[summary]
Arguments:
q {[str]} -- [普通关键字]
page {[int]}
"""
isbn_or_key = 'key'
if len(q) == 13 and q.isdigit(): # 判断是否是isbn号码
isbn_or_key = 'isbn'
short_q = q.replace('-', '')
# and的先后顺序有影响, 越有可能是假的就放前面, 消耗资源的如查询数据库放后面
if '-' in q and len(short_q) == 10 and short_q.isdigit():
isbn_or_key = 'isbn'
pass
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=app.config['DEBUG'], port=81)
3. 对代码优化
视图函数尽量不要把所有代码都放入,把视图函数变得很臃肿。
我们将fisher.py为例子,进行优化:
编写helper.py,把判断搜索书籍的是关键字还是isbn码的逻辑抽离: