文章详情页面
有了首页的文章展示,那么怎么可以看到文章的内容呢,也就是所谓的查看详情。
配置路由地址
article/urls.py
path('article_detail/<int:id>', views.article_detail, name='article_detail')
编写视图函数(Views)
article/views.py
def article_detail(request, id):
article = Article.objects.get(id=id)
context = {
'article': article
}
return render(request, 'article_datail.html', context)
与之前的函数不同的是,多了一个id,即多了一个主键,在model中不声明主键时,Django会对每个表自动生成一个主键,也就是id。
Modelname.objects.get(id=id)
为在Modelname中取出id值为传递参数的对象,即一篇文章。
这里需要很大的优化,我们以后再说。
Templates编写
article_detail.html
<div class="row">
<!-- 标题及作者 -->
<h2 class="col-12 mt-4 mb-4">{{ article.art_title }}</h2>
<div class="col-12 alert alert-success">
Author:{{ article.author }}    Datetime:{{ article.created_time }}
</div>
<!-- 文章正文 -->
<div class="col-12">
<p>{{ article.art_body }}</p>
</div>
</div>
页面之间进行连接
前端页面优化
index.html
{% for article in all_article %}
<div class="row ">
<a href="{% url 'article:article_detail' article.id %}" class="text-muted">
<h5>{{ article.art_title }}</h5>
</a>
</div>
<div class="row">
<p>
{{ article.created_time }}
</p>
</div>
{% endfor %}
href后的代码也可以更换为熟悉的/article/article_datail/{{article.id}}
,不过我上面的代码是我提倡的,就是前面所讲的nammspace
+name
.
这样优化后,点击首页的文章标题,就进入到了文章的详情页面。
这样,一个及其简单的博客的正删改查基本就实现了,再多多优化优化代码吧。前面所说的代码还有很大的优化空间呦!
加油,你是最棒的。