前一篇《飞仙锅建站日志第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的知识,因为毕竟人家写的模板,可能并不符合你的审美。