如何使用 Open Library Cover API 填充 sqlalchemy 列?

How to use Open Library Cover API to fill sqlalchemy column?

提问人:elfipy 提问时间:11/17/2023 更新时间:11/17/2023 访问量:11

问:

我想使用 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"
Python Flask SQLALCHEMY 烧瓶-WTForms

评论

0赞 Aadesh Baral 11/17/2023
我无法理解你在这里想要实现的目标。您能解释一下您将如何逐步使用 Open Library Cover API 和 WTforms 以及您实际需要帮助的地方吗?

答: 暂无答案