二、Django2.1 搭建简单的博客网站扩展——自定义模板和静态文件位置

目录:Django 2.1 从零开始搭建博客网站系列

服务器环境搭建(选学)

  • 在阿里云服务器从零开始上线Django项目:Ubuntu18.04+Python3+Django2,并通过公网IP访问

小试牛刀——简单的博客网站

  • 一、Django2.1 搭建简单的博客网站
  • 二、Django2.1 搭建简单的博客网站扩展——自定义模板和静态文件位置

庖丁解牛——多用户的博客网站之用户模块

  • 三、Django2.1 搭建多用户的博客网站——登录
  • 四、Django2.1 搭建多用户的博客网站——注册
  • 五、Django2.1 搭建多用户的博客网站——修改密码
  • 六、Django2.1 搭建多用户的博客网站——重置密码
  • 七、Django2.1 搭建多用户的博客网站——维护个人详细信息
  • 八、Django2.1 搭建多用户的博客网站——头像上传
  • 九、Django2.1 搭建多用户的博客网站——用户模块小结

庖丁解牛——多用户的博客网站之文章模块

  • 十、Django2.1 搭建多用户的博客网站——文章栏目
  • 十一、Django2.1 搭建多用户的博客网站——简单的文章发布
  • 十二、Django2.1 搭建多用户的博客网站——使用Markdown发布文章
  • 十三、Django2.1 搭建多用户的博客网站——修改和删除文章
  • 十四、Django2.1 搭建多用户的博客网站——向用户展示文章
  • 十五、Django2.1 搭建多用户的博客网站——文章模块小结

华丽转身——多用户的博客网站之扩展功能

  • 十六、Django2.1 搭建多用户的博客网站——文章点赞功能
  • 十七、Django2.1 搭建多用户的博客网站——统计文章浏览次数
  • 十八、Django2.1 搭建多用户的博客网站——文章评论功能
  • 十九、Django2.1 搭建多用户的博客网站——使用自定义模板标签
  • 二十、Django2.1 搭建多用户的博客网站——文章标签
  • 二十一、Django2.1 搭建多用户的博客网站——美图模块
  • 未完待续

项目源码下载:https://github.com/jt1024/lehehe

正文:

1、自定义模板和静态文件位置

当项目比较大的时候,往往会创建多个应用,这种情况下,模板、静态文件都要指定放在某个位置,比如把所有应用的模板都放在 ./templates中,把所有应用的静态文件都放在 ./static中。

1.1 自定义模板位置

修改 ./lehehe/settings.py中的 TEMPLATES

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates'), ],  # 自定义模板位置
        'APP_DIRS': False,  # 自定义模板位置,不再允许按照默认方式寻找模板文件
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

注意:还要把 ./blog中的 templates 文件夹移动到最外层,即 ./blog/templates 变成了 ./templates

1.2 自定义静态文件位置

修改 ./lehehe/settings.py 在 STATIC_URL = '/static/' 下面增加三行代码

STATICFILES_DIRS = (  # 自定义静态文件位置
    os.path.join(BASE_DIR, "static"),  # 注意不要丢掉这个逗号,因为这是个元祖
)

新建 ./static 文件夹,并添加以下子文件夹和文件


二、Django2.1 搭建简单的博客网站扩展——自定义模板和静态文件位置_第1张图片
static文件夹结构.png

2、使用通用静态文件和基础模版

2.1 通用 header.html

创建 ./templates/header.html

{% load staticfiles %}

2.2 通用 footer.html

创建 ./templates/footer.html


copy right www.taoge100.com

2.3 完善 base.html

修改 ./templates/base.html

{% load staticfiles %}



    
    
    
    {% block title %}{% endblock %}
    


{% include "header.html" %}
{% block content %} {% endblock %}
{% include "footer.html" %} {% block javascript %} {% endblock %}

3、效果展现

此时的项目结构如图:


二、Django2.1 搭建简单的博客网站扩展——自定义模板和静态文件位置_第2张图片
最新的项目结构.png

运行Django后,浏览器中输入 http://127.0.0.1:8000/blog/,页面如图:

二、Django2.1 搭建简单的博客网站扩展——自定义模板和静态文件位置_第3张图片
新的博客列表.png

点击列表中的一条,页面如图:


二、Django2.1 搭建简单的博客网站扩展——自定义模板和静态文件位置_第4张图片
新的博客详情.png

4、重置后台管理模板

运行Django后,浏览器中输入 http://127.0.0.1:8000/admin/ 会报错如图:

二、Django2.1 搭建简单的博客网站扩展——自定义模板和静态文件位置_第5张图片
后台报错.png

因为我们已经将默认的文件模板位置都指向了自定义模板的位置,所以需要把后台相关模板文件复制到自定义模板位置。
把 django/contrib/admin/templates 目录下的 admin 和 registration 两个文件夹复制到 ./templates 里面

此时,重新运行Django,再次打开 http://127.0.0.1:8000/admin/ 又一切正常了

你可能感兴趣的:(二、Django2.1 搭建简单的博客网站扩展——自定义模板和静态文件位置)