Django学习教程(十四)使用模板系统渲染博客页面

Django学习教程(十四)使用模板系统渲染博客页面

前言

  上一篇我们学习了Django模板系统的基本使用,可以把后端数据传递到HTML页面中。这一篇我们继续完善博客列表页面。

  这次我们会从数据库中查询文章数据,然后使用模板中的for循环,把文章列表展示到页面上。

1.查询文章数据

打开views.py文件,编写文章列表视图。

代码:

复制代码
from django.shortcuts import render
from .models import Article


def article_list(request):
    articles = Article.objects.all()
    return render(request, 'blog/article_list.html', {'articles': articles})

这里查询所有文章,并把articles传递给模板。

2.创建模板文件

在blog/templates/blog目录下创建article_list.html。

代码:

复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Django博客</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-4">
    <h2 class="mb-4">Django博客</h2>

    {% for article in articles %}
        <div class="card mb-3">
            <div class="card-body">
                <h5 class="card-title">{{ article.title }}</h5>
                <p class="card-text">{{ article.content }}</p>
            </div>
        </div>
    {% endfor %}
</div>
</body>
</html>

{% for article in articles %}表示遍历文章列表。

{``{ article.title }}表示显示文章标题。

{``{ article.content }}表示显示文章内容。

3.配置路由

打开urls.py文件。

代码:

复制代码
from django.contrib import admin
from django.urls import path
from blog import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.article_list),
]

4.访问页面

浏览器访问:

复制代码
http://127.0.0.1:8000/

如果页面显示了数据库中的文章列表,说明模板渲染成功。

5.文章排序

如果想让最新的文章显示在前面,可以修改查询代码。

代码:

复制代码
articles = Article.objects.all().order_by('-created_time')

完整代码:

复制代码
from django.shortcuts import render
from .models import Article


def article_list(request):
    articles = Article.objects.all().order_by('-created_time')
    return render(request, 'blog/article_list.html', {'articles': articles})

-created_time表示按照创建时间倒序排序。

6.总结

  这一篇我们学习了怎样使用Django模板系统渲染博客文章列表。视图函数负责查询数据,模板负责显示数据。

  在模板中可以使用for循环遍历数据,也可以使用{``{ }}显示变量。好了这一篇就到这里,下一篇我们继续学习文章详情页面跳转,如果对你有帮助,点赞加关注,下篇见。

相关推荐
JavaWeb学起来2 天前
Django学习教程(十三)Django模板系统基本使用
python web·django教程·django学习·django基础
JavaWeb学起来5 天前
Django学习教程(十二)使用Bootstrap搭建静态博客页面
python web·django教程·django学习·django基础
JavaWeb学起来7 天前
Django学习教程(十一)实现博客数据返回页面
python web·django教程·django学习·django基础
JavaWeb学起来8 天前
Django学习教程(十)Django Admin后台管理模块
python web·django教程·django学习·django基础
JavaWeb学起来8 天前
Django学习教程(九)Django Shell基本使用
python web·django教程·django学习·django基础
JavaWeb学起来12 天前
Django学习教程(八)Django数据迁移migrations
python web·django教程·django学习·django基础
JavaWeb学起来13 天前
Django学习教程(七)创建博客文章模型
python web·django教程·django学习·django基础
JavaWeb学起来14 天前
Django学习教程(六)模型层Model基本介绍
python web·django教程·django学习·django基础
JavaWeb学起来15 天前
Django学习教程(五)Django HelloWorld入门案例
python web·django教程·django学习·django基础