Django博客开发系列–03展示博客详细信息

urls.py

app_name = 'blog'
urlpatterns = [
path('blog-detail/<int:id>',views.blog_detail,name='blog_detail'),
]

views.py

id对应于上面url传入的id,该id由下面list.html传入

  • blog=Blog.objects.get(id=id):从数据库取对应值赋值给blog
  • context={‘blog’:blog}:创建字典传递给显示的HTML
  • return render(request,’blog/detail.html’,context):跳转到detail.html
def blog_detail(request,id):
    blog=Blog.objects.get(id=id)
    context={'blog':blog}
    return render(request,'blog/detail.html',context)

templates/blog/detail.html

detail.html

    {{blog.title}}
    {{blog.author}}
    {{blog.body}}

list.html

为list.html中的博客增加连接,点击该博客进入博客详细页面

  • HTML: {% url ‘blog:blog_detail’ blog.id %}
  • URL: 对应于path(‘blog-detail/int:id‘,views.blog_detail,name=’blog_detail’)
    • blog:对应于url该App指定的名称空间:app_name = ‘blog’
    • blog_detail:对应于url里面name
    • blog.id: 最后传入具体哪个博客
{% for blog in blogs %}
    <p><a href="{% url 'blog:blog_detail' blog.id %}">{{blog.title}}</a></p>
        <p>{{blog.author}}</p>
    {% endfor %}

Leave a comment