• Python + Django4 搭建个人博客(九):引入Bootstrap渲染和美化博文列表


    上篇我们实现了一个简单的展示博文信息的网页,但是网页看起来有点简陋。

    Python + Django4 搭建个人博客(八):实现博文列表页面的视图函数和模板_李威威wiwi的博客-CSDN博客

    本篇我们在上篇的基础上,引入Bootstrap框架,对我们的模板进行修改,实现网页的渲染美化。

    静态资源准备

    在进行模板修改之前,我们先准备一下我们需要用到的静态资源。

    这里我们直接使用当前最新的Bootstrap版本5 .13。

    Bootstrap是用于网站开发的开源前端框架(“前端”指的是展现给最终用户的界面),它提供字体排印、窗体、按钮、导航及其他各种组件,旨在使动态网页和Web应用的开发更加容易。

    先去Bootstrap的官网下载相关的生产文件:下载 Bootstrap · Bootstrap v5 中文文档 v5.1 | Bootstrap 中文网,并解压备用。

    接着,我们新建文件夹,用来存放静态资源文件。

    • 在项目根目录下新建目录static/bootstrap/,用于存放Bootstrap静态文件。

    最后将我们之前解压的Bootstrap文件夹内的CSS 和JS文件夹复制到我们刚刚新建的文件夹static/bootstrap/中。

    静态资源配置

    静态资源要在Django项目中被使用的话,我们需要修改相关的配置文件,以便Django可以识别到对应的路径。

    我们在配置文件settin.py 中增加如下代码,告诉Django我们静态文件所在的位置:

    1. STATIC_URL = 'static/'
    2. STATICFILES_DIRS = [
    3. os.path.join(BASE_DIR, 'static'), # 添加此项
    4. ]

    改写模板

    基础模板

    Djang模板可以有继承的概念,相同结构的网页模板,我们可以做一个基础模板:先划分块,然后再根据实际的页面要求我们在不同的块里面填充我们的内容。

    模板开发的过程实际上大部分是前端代码部分,以下开发代码部分涉及Bootstrap框架的内容,这里我们不做详细的说明,大家可以去Bootstrap的官方文档地址自行查阅学习: 简介 · Bootstrap v5 中文文档 v5.1 | Bootstrap 中文网

    这部分暂时不熟悉不影响我们学习Django。

    比如我们先新建一个基础模板base.html:

    1. {% load static %}
    2. "zh-cn">
    3. "utf-8">
    4. {% block title %}{% endblock %}
    5. "stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
    6. {% include 'header.html' %}
    7. {% block content %}{% endblock content %}
    8. {% include 'footer.html' %}

    这里我们又遇到了一些Django模板语法,新的标签语法说明如下:

    {% load static %}:载入static静态文件,先载入static静态文件才能使用{% static ... %}标签引用静态文件。

    {% static 'bootstrap/css/bootstrap.min.css' %}:引入 bootstrapcss文件。

    {% block title %}{% endblock %}:预留网站标题的位置,此部分可以在继承此模板的子模板中通过{% block title %}{% endblock %}标签重新编写内容。

    {% include 'header.html' %}:包含 header.html文件,相当于将header.html文件中的代码填充在指定位置。

    下表是Django模板中常见的标签语法:

    包含模板文件

    接着我们分别编写两个包含在base.html中的子文件:

    header.html

    1. class="container">
      • class="navbar-nav">
    2. class="nav-item">
  • footer.html

    1. {% load static %}



    2. class="py-3 bg-dark fixed-bottom">
    3. class="container">
    4. class="m-0 text-center text-white">Copyright © django4blog

    最后,我们改写下列表templates/article/list.html:

    1. {% extends "base.html" %}
    2. {% load static %}
    3. {% block title %}
    4. 首页
    5. {% endblock title %}
    6. {% block content %}
    7. class="container">
    8. {% for article in articles %}
    9. class="row mt-2">
    10. class="col-sm-12">
    11. class="card h-100">
    12. class="card-body">
    13. class="card-title">{{ article.title }}

    14. class="card-text">{{ article.body|slice:'100' }}...

    15. {% endfor %}
    16. {% endblock content %}

    我们重新运行服务器,打开地址:http://127.0.0.1:8000/article/

    最后的效果图如下:

    结语

    本篇我们在上篇文章列表的模板上进行了一些修改,我们引入了Bootstrap框架的JS和Css静态文件。

    在模板上通过模板标签在模板文件中加载了对应的静态文件。

    本篇我们新学习了几个Django模板标签

    另外我们还熟悉了django模板继承过程,模板继承的实现步骤如下:

    1、在模板子模板(比如:list.html)中使用{% extends "base.html" %}来继承模板base.html的代码。

    2、由标签{% block body %}在继承模板的基础上实现自定义模板的内容。

    3、由{% endblock %}结束block标签。

    下篇我们将实现博客网站的另一重要功能,文章详情的展示。

  • 相关阅读:
    [国产MCU]-W801开发实例-WiFi网络扫描
    数据分析报告怎么写
    centos7安装erlang23.3.4.11及rabbitmq3.9.16版本
    golang的new和make
    进大厂必备的 Java 八股文大全(2022 最强精简易懂版)
    Java毕设项目基于的智慧小区计算机(附源码+系统+数据库+LW)
    PyTorch搭建基于图神经网络(GCN)的天气推荐系统(附源码和数据集)
    thinkphp6 起步
    zabbix二级目录反代部署
    如何进行高性能架构的设计
  • 原文地址:https://blog.csdn.net/agelee/article/details/126601815