在使用Python,Flask,Heroku,Jquery和Google Books API的小型教授(日语)工作时,我在执行"検索"(意思是"搜索")时遇到了500个内部服务器错误。
当您单击"検索"及其旁边的框上的一些输入时,它会向Google Books API发送请求,并通过带有Jquery的Ajax获取与该参数匹配的书籍数据,如下所示。
@app.route("/_search_books")
def search_books():
title = request.args.get('title')
if title:
title = title.encode('utf-8')
url = 'https://www.googleapis.com/books/v1/volumes?q=' + title
h = urlopen(url)
data = json.load(h)
books = []
for i in range(len(data['items'])):
try:
title = data['items'][i]['volumeInfo']['title']
except:
title = None
try:
author = data['items'][i]['volumeInfo']['authors'][0]
except:
author = None
try:
publisher = data['items'][i]['volumeInfo']['publisher']
except:
publisher = None
try:
year = data['items'][i]['volumeInfo']['publishedDate']
except:
year = None
try:
thumbnail = data['items'][i]['volumeInfo']['imageLinks']['thumbnail']
except:
thumbnail = None
try:
page = data['items'][i]['volumeInfo']['pageCount']
except:
page = None
books.append({'title': title, 'author': author, 'publisher': publisher, 'year': year, 'thumbnail': thumbnail, 'page': page})
return jsonify(result=books)
它在开发中工作正常,所以我想它是 Google Books API 的权限相关内容或 SSL 相关内容。
奇怪的是,它并不总是返回 500,有时会返回预期的结果。这似乎取决于我执行的时间,比如早上 200 点,下午 500 点。
提前致谢:)
我遇到了同样的问题。 矿山在开发和生产之间没有区别;他们俩只是偶尔返回 500。 消息为"后端错误"。 我不相信你能做些什么来解决这个问题;这似乎是谷歌方面的一个问题。 我通常可以在几秒钟后再次重复相同的查询,它工作正常。
我实际上遇到了同样的问题,将请求量更改为较低的maxResults=15到搜索字符串,它解决了问题