現在作品列表有名稱、年份和評分,但還不能點進去查看完整內容。今天要為每一筆作品建立獨立的詳細頁面。
步驟 1:在 app.py 加入路由
@app.route("/media/int:media_id")def media_detail(media_id): connection = get_db_connection() item = connection.execute(""" SELECT * FROM media WHERE id = ? """, (media_id,)).fetchone() connection.close() if item is None: return render_template( "page.html", title="找不到作品", description="這筆收藏不存在,或可能已經被刪除。" ), 404 return render_template("detail.html", item=item)
步驟 2:建立 templates/detail.html
{% extends "base.html" %}
{% block title %}{{ item["title"] }} - My Media Library{% endblock %}
{% block content %}
<p>
<strong>個人評分:</strong>
{% if item["rating"] is not none %}
{{ item["rating"] }}/10
{% else %}
尚未評分
{% endif %}
</p>
<h2>我的心得</h2>
<p class="notes">{{ item["notes"] or "尚未撰寫心得。" }}</p>
<p>
<a class="button"
href="{{ url_for('edit_media', media_id=item['id']) }}">
編輯作品
</a>
</p>
注意:這份模板已經預先放上編輯連結,因此 Day 14 會建立 edit_media 路由。
步驟 3:讓作品卡片可以點擊
在 templates/collection.html 中,找到:
替換成:
步驟 4:測試