用Django搭建个人博客网站(二.基础模版的创建)
接下来,我们要创建一个基础模版,将整个网站的框架搭出来。
配置模版路径
我们首先需要在manage.py所在的项目根目录下创建一个文件夹templates用于存放项目的所有模版文件,所谓模版文件,其实就是一些可以使用Django特点模版语法的html文件。
模版文件夹路径创建好这个文件夹后,我们需要再打开settings.py文件,配置这个模版文件的路径,这样项目才能找到模版文件的位置。在settings.py中找到TEMPLATES这项,将'DIRS'里的内容改成如下所示:
templates其中的BASE_DIR是settings.py前几行预先设置的项目根目录位置,这样填写就等于将项目模版文件的位置指向根目录下的templates文件夹。
同理,我们也需要通过相同的配置让项目知道静态文件的路径。
配置静态文件路径
我们在settings.py中能找到一个STATIC_URL变量,这个变量用于指定templates调用静态文件时的引用根目录,但是项目仍不知道存放静态文件的根路径在哪,这里需要我们写入一个变量STATICFILES_DIRS进行指定。
静态文件路径这里我们来说明一下Django配置文件中几个与静态文件有关的目录的含义:
STATIC_URL是放置静态文件的地方,Django会默认在这里找到静态文件,但是我们一般不会在一开始就把静态文件放进去,因为最后在统一发布前需要从各文件夹收集静态文件放到这里,有可能覆盖原文件。
STATIC_ROOT是静态文件相对于系统的目录。
MEDIA_URL一般会将上传的文件放入这个文件夹。
MEDIA_ROOT同STATIC_ROOT。
STATICFILES_DIRS一个元组,里面放置开发时静态文件自动搜寻的目录,我们在开发是先建一个common_static即公用的静态文件夹,在里面放我们自己的静态文件,等最后使用静态文件收集命令一并处理。
编写基本模版
接下来,让我们编写一个基本模版文件,来构建整个网站的基调。
我们先在templates文件夹下创建一个html文件base.html,并根据自己的喜好编写一个带有导航栏和菜单的html文件。
我们在个html文件需要改变的地方加入两个入口,如下图:
base.html注意,这段代码中有两个可以替换的入口:
{% block title %}{% endblock %}
{% block content %}{% endblock %}
创建页面文件目录
在根目录下创建文件夹pages用于存储最终的页面文件:
pages目录位置然后,和上面一样,我们需要在settings.py中设置这个目录的路径:
页面路径之后,我们在views.py中创建一个视图函数,用于生成页面。
页面的视图函数之后,我们在templates文件夹中创建一个page.html页面模版,这个模版继承自base.html,同时会通过刚创建的page视图函数传入一个模版元素,这样我们就可以通过向视图函数page中传入不同的参数,让page.html显示包含不同pages文件夹下元素的页面文件了。
创建页面文件模版
在templates文件夹下创建一个文件page.html,文件代码如下:
page.html第一行代码表示这个html继承了base.html
之后的两个代码块则用于替换base.html中留空的两个代码块。
第四行{% include page %}是视图函数将模版元素传入的入口。
设置URL与视图函数的路由
最后一步,我们需要配置urls.py用于关联url与视图函数。
urls.pypages页面代码块
接下来,我们就可以通过在pages文件夹下添加不同的html代码块文件,这些文件名会被作为视图函数的参数,并将对应的html块替换掉base.html中的 {% block content %}{% endblock %} 的内容。
我们先在pages目录下创建一个index.html作为默认的主页页面进行展示。
比如我们在index.html中加入以下代码块。
index.html那么网站则会在默认状态下显示: