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 %}