使用flask和Python的动态路由不起作用

2024-06-25 23:53:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力使用flask(sqlalchemy)和Python设置动态路由。当我测试代码时,url会正确呈现。但是,链接呈现的是布局模板,而不是书本扩展名。你知道吗

我一直在看代码,我肯定我遗漏了一些简单的东西。有人能看出我做错了什么吗?你知道吗

以下是带有动态链接的html:

{% for book in books %}
        <tr>
            <td>
              <a href="{{ url_for('book', book_id=book.book_id) }}">
                    {{ book.isbn }}
              </a>
            </td>
            <td>{{ book.title }}</td>
            <td>{{ book.author }}</td>
            <td>{{ book.year }}</td>
        </tr>
{% endfor %}

这是你的名字书本.html模板扩展html。“Book Details”静态内容未呈现:

{% extends "layout.html" %}

{% block title %}
    Book Details
{% endblock %}

{% block body %}
    <h1>Book Details</h1>

    <ul>
        <li>ISBN: {{ book.isbn }}</li>
        <li>Title: {{ book.title }}</li>
        <li>Author: {{ book.author }}</li>
        <li>Publication Year: {{ book.year }}</li>
    </ul>

{% endblock %}

最后是应用程序.py路线:

@app.route("/results/<int:book_id>")
def book(book_id):
    """Lists details about a single book."""

    # Look up book in the database
    book = db.execute("SELECT * FROM books WHERE book_id = :book_id", {"book_id": book_id}).fetchone()

    return render_template("book.html", book=book)

Tags: in模板idurlfortitle链接html