I have nearly finished the Cs50x course but I am stuck on my final project. I am creating a website called 'Letterbooks' (inspired by Letterboxd) that allows you to log books that you have read. I am connecting the program to a SQLite database that is full of around 3000 books.
In my database I also have these tables:
users - stores user information (username, password etc)
logbook - contains the books that the user has 'logged'/read
The problem -
I have successfully completely the 'searched' page where the user can type in a title or author or ISBN number and the results show up.
NOW on the results page, I am trying to code a 'log' button where the user can click on the log button that is next to the book they have read. After clicking the button, the user will be automatically redirected to their homepage and they will see a table/logbook of that book they have just 'logged'.
At the moment when the log button is clicked but I get a 500 error/Runtime error: unused values (book)
Where am I going wrong? Any tips would be appreciated.
{% extends "layout.html" %}
{% block title %}
Results
{% endblock %}
{% block main %}
<h1 class="display-4">Search Results</h1>
<table class="table table-striped">
<trhead>
<tr>
<th>ISBN</th>
<th>Title</th>
<th>Author</th>
<th>Year</th>
<th></th>
</tr>
</trhead>
<!-- table body -->
<form action="{{ url_for('results') }}" name="book" value="book" method="post">
<tbody>
{% for result in results %}
<tr>
<td>{{result['isbn']}}</td>
<td>{{result['title']}}</td>
<td>{{result['author']}}</td>
<td>{{result['year']}}</td>
<td>
<button class="btn btn-primary" type="submit">Log</button>
</td>
</tr>
{% endfor %}
</tbody>
</form>
</table>
@app.route("/results", methods=["GET", "POST"])
@login_required
def results():
"""Show Search Results and there's an option to log a book"""
if request.method == "POST":
book=request.form.get("book")
isbn = db.execute("SELECT isbn FROM books WHERE title=book", book=book)
title = db.execute("SELECT title FROM books WHERE title=book", book=book)
author = db.execute("SELECT author FROM books WHERE title=book", book=book)
year = db.execute("SELECT year FROM books WHERE title=book", book=book)
db.execute("INSERT INTO logbook (user_id, isbn, title, author, year) VALUES (?, ?, ?, ?, ?)",
session["user_id"], isbn, title, author, year)
return render_template("index.html")
else:
return render_template("results.html")