前情提要:
Django博客项目(一)—— 注册和登录页面
本文将继续介绍博客项目的第二部分,博客首页的实现。
效果图
首先还是先来看一下完成后的效果:
未登录时,导航栏包括首页、博客列表、登录、注册菜单。
登录之后,会增加发表博客、注销登录菜单。
首页显示评论数量最多的三篇博客,显示内容如图所示。
最后一部分显示最近发表的三篇博客的信息
路由配置
在应用的urls.py文件中添加首页的路由信息。
app_name = 'App01'
urlpatterns = [
path('index/', views.index, name='index'),
]
视图函数
def index(request):
# 按照回复数倒序排序,获取回复数最多的三篇博客
home_blogs = BlogPost.objects.order_by('-replycount')[:3]
# 按照回复时间倒序排序,获取最近发表的三篇博客
latest_blogs = BlogPost.objects.order_by('-addtime')[:3]
return render(request, 'blog_r/index.html', locals())
前端页面
这里套用的是来源于网络的一个页面模板,所以只列出几个主要功能部分的代码。
- 菜单栏
<div id="navbarcollapse" class="collapse navbar-collapse">
<ul class="navbar-nav ml-auto">
<!-- 首页 -->
<li class="nav-item"><a href="{% url 'App01:index' %}" class="nav-link active ">Home</a>
</li>
<!-- 博客列表 -->
<li class="nav-item"><a href="{% url