提问人:elfipy 提问时间:11/17/2023 更新时间:11/17/2023 访问量:11
如何使用 Open Library Cover API 填充 sqlalchemy 列?
How to use Open Library Cover API to fill sqlalchemy column?
问:
我想使用 Open Library Cover API 获取作者姓名和书名,并使用 OLID 填充我的 sqlalchemy 数据库中的一列,以便我可以使用它在我的 html 文件中生成图像。 我正在使用带有 WTForms 的 Flask 来填充其余的列,我对 Web 开发非常陌生,所以我有点不知所措。任何帮助或提示将不胜感激。
我的 models.py 片段
class reviewedBook(db.Model):
username = db.Column(db.String(32), primary_key=True)
bookname = db.Column(db.String(50))
author = db.Column(db.String(32))
genre = db.Column(db.String(10))
review = db.Column(db.Text)
liked = db.Column(db.Boolean)
cover = db.columnn(db.text)
表单的其余部分
class reviewBook(FlaskForm):
bookname = StringField('Name of the Book', validators=[InputRequired(), Length(min=1, max=50)])
author = StringField('Name of the Author', validators=[InputRequired(), Length(min=2, max=32)])
genre = SelectField('Book genre', choices=[('Romance', 'Romance'), ('Mystery', 'Mystery'), ('Fantasy', 'Fantasy'), ('Thrillers and Horror', 'Thrillers and Horror'), ('Young Adult', 'Young Adult')])
review = TextAreaField('Review', validators=[InputRequired(), Length(max=200)])
liked = BooleanField('Liked', default='unchecked')
我做的一个 python 程序(不知道如何实际将结果馈送到其他文件,而且我对 python 不是很熟悉)
import requests
def find_book_id(title, author):
base_url = "https://openlibrary.org/search.json"
# Constructing the query parameters
params = {
'title': title,
'author': author
}
try:
# Making the API request
response = requests.get(base_url, params=params)
response.raise_for_status() # Check for HTTP errors
# Parsing the JSON response
data = response.json()
# Extracting the book ID if available
if 'docs' in data and data['docs']:
book_id = data['docs'][0]['key'][7:] # Extracting the key and removing the "/works/" prefix
return book_id
else:
return "Book not found"
except requests.exceptions.HTTPError as errh:
return "Error"
except requests.exceptions.ConnectionError as errc:
return "Error"
except requests.exceptions.Timeout as errt:
return "Error"
except requests.exceptions.RequestException as err:
return "Error"
答: 暂无答案
评论