1.jsonify:
得到了从API获得的数据并返回,API返回的json数据被转化成dict,我们还需要把dict序列化:
return json.dump(result), 200, {'content-type':'application/json'}
Flask提供一种简化的方法(jsonify):return jsonify(result)
return jsonify(result)
2.视图函数拆分到单独文件中:
之前的fsher.py 文件中存在太多的视图函数:
from flask import Flask, jsonify
from helper import is_isbn_or_key
from yushu_book import YuShuBook
from config import DEBUG
app = Flask(__name__)
app .config.from_object('config')
@app.route('/hello')
def hello():
return 'Hello!'
@app.route('/book/search/<q>/<page>')
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)
# dict 序列化
return jsonify(result)
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=app.config['DEBUG'])
将下面的代码剪切到book.py
@app.route('/book/search/<q>/<page>')
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)
# dict 序列化
return jsonify(result)
# return json.dump(result), 200, {'content-type':'application/json'}
导入一些包后 app不能运行,导入app后没有用:
这里要了解Flask的路由