飞仙锅建站日志第3篇-换肤django-zinnia-bootstrap

前一篇《飞仙锅建站日志第2篇-详解django-blog-zinnia》向大家介绍了zinnia的运营原理和注意事项,这一篇主要讲一下,如何给zinnia换个皮肤。

在正式写之前,说一下我使用boostrap的感受,那就是爽。

几个方面,由于bootstrap最初是由twitter的工程师为移动端打造的一套前端CSS框架,所以在移动端的适配非常好。

然后再扩展到Pad,PC等屏幕,解决了网站开发的最麻烦、最boring的各种浏览器,各种版本,各种尺寸的适配问题。

让开发者,将更多精力放到业务代码,程序架构上面去。

对于一般的文字类网站,一眼看上去清爽,文字和图都有很好展示,完全够用了。

看一看飞仙锅网站在移动端的表现,见下图:

所以,有了这个东东以后,将减轻了移动站点的开发工作量。

好,接下来,正式开始讲讲,zinnia如何集成zinna-bootrap。

下载源码

由于zinnia_bootstap的模板文件需要调整,所以将源码直接安装到工程中去,做为一个app。

git clone https://github.com/django-blog-zinnia/zinnia-theme-bootstrap.git

由于模板文件不在zinnia/template中,所以需要引用一个template loader,让django优先发现bootstrap模板。需要下载

https://pypi.org/project/django-app-namespace-template-loader/

将以上两个工程的源码,放到myzinnia下面去。

参数配置

app_namespace.Loader将放在loaders最前面,让django先发现django-theme-bootstrap模板

INSTALL_APPS=[
    'zinnia_bootstrap',#直接copy到工程里来
]

#settings.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'OPTIONS': {
            'loaders': [
                #需要放在最前面,让django先发现django-theme-bootstrap模板
                'app_namespace.Loader',
                'django.template.loaders.filesystem.Loader',
                'django.template.loaders.app_directories.Loader',
            ],
            'context_processors': [
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'django.template.context_processors.i18n',
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                
                'zinnia.context_processors.version',

                # 20210824 django-cms
                'django.template.context_processors.media',
                'django.template.context_processors.csrf',
                'django.template.context_processors.tz',
                'sekizai.context_processors.sekizai',
                'django.template.context_processors.static',
                'cms.context_processors.cms_settings'
            ]
        }
    }
]

兼容问题

运行报错,因为django-bootstrap是基于python2.X开发的,django.utils._os.upath()和npath()-这些功能在Python 3上不起作用。

from django.utils._os import upath
templates_dir = upath(templates_dir)

运行时会模板会报错,因为django-bootstrap是基于django2.X版本开发的,所以在模板引入tags时,需要将{% load staticfiles%} 改成 {%load static%} 

结语

到这里基本可以使用了,但想要页面更加漂亮,还是需要深入学习bootstrap的知识,因为毕竟人家写的模板,可能并不符合你的审美。

评论列表

暂无评论,欢迎来抢沙发!

新的评论

清空