django应用,实现主题化概念,灵活可配置。允许为主机url创建主题。
django-theming的Python项目详细描述
Django应用程序,实现多线程概念,灵活可配置。允许为主机url创建主题。
安装
您可以使用pip:
安装最新的django主题版本pip install django-theming
设置
注意:应将以下设置添加到项目文件settings.py中。
将“主题化”添加到INSTALLED_APPS:
INSTALLED_APPS += ( 'theming', )
将“theming.middleware.themingMiddleware”添加到MIDDLEWARE_CLASSES:
MIDDLEWARE_CLASSES += ( 'theming.middleware.ThemingMiddleware', )
将“theming.loaders.themeloader”添加到TEMPLATE_LOADERS:
TEMPLATE_LOADERS += ( 'theming.loaders.ThemeLoader', )
声明THEME_ROOT和MEDIA_ROOT:
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) THEME_ROOT = os.path.join(BASE_DIR, 'themes') MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
声明MEDIA_URL:
MEDIA_URL = '/media/'
声明THEME_MEDIA_ROOTyTHEME_MEDIA_URL:
THEME_MEDIA_ROOT = os.path.join(MEDIA_ROOT, 'themes') THEME_MEDIA_URL = os.path.join(MEDIA_URL, 'themes')
声明主机/主题配置元组THEME_CONFIG:
THEME_CONFIG = ( (r'^(.+\.)?dominio\.pe', 'default'), (r'^(.+\.)?test\.pe', 'test'), )
用法
它应该在项目中创建一个文件夹themes,其结构如下:
project_django/ | -- themes/ | -- default/ ** theme name | -- templates/ | -- media/ | | -- styles/ | | -- scripts/ | | -- images/ | -- metadata.json
note:我们按主题使用media而不是static作为独立资产。
在文件metadata.json中,应该包含有关主题的信息:
{ "slug": "default", "name": "Default", "description": "Theme Default", "author": "Author", "version": "1.0" }
您可以使用模板标记theme来引用主题资产,如下所示:
<link rel="stylesheet" href="{% theme 'styles/main.css' %}" />
注意:tamplate标记theme将引用media/themes/<theme_name>文件夹,如果在该路径中找不到文件,它将在static/中搜索
您可以使用命令collectthemes将主题的所有资产复制到位置media/:
python manage.py collectthemes options: - l, --link : Create a symbolic link to each file instead of copying. - f, --force: Force to overwrite content.
贡献
开发django主题发生在github:https://github.com/achavezu89/django-theming
学分
- 安德烈斯查韦斯:https://github.com/achavezu89
- 乔治·勒沃尼:https://github.com/ppold
- 安东尼奥·奥尼奥:https://github.com/gnrfan
- 安东尼奥·科巴什卡瓦:https://github.com/akobashikawa