django应用,实现主题化概念,灵活可配置。允许为主机url创建主题。

django-theming的Python项目详细描述


https://pypip.in/v/django-theming/badge.svg?text=version&style=flathttps://pypip.in/d/django-theming/badge.svg?style=flathttps://pypip.in/py_versions/django-theming/badge.svg?style=flathttps://pypip.in/status/django-theming/badge.svg?style=flathttps://pypip.in/license/django-theming/badge.svg?style=flat Django应用程序,实现多线程概念,灵活可配置。允许为主机url创建主题。

安装

您可以使用pip:

安装最新的django主题版本
pip install django-theming

设置

注意:应将以下设置添加到项目文件settings.py中。

  1. 将“主题化”添加到INSTALLED_APPS

    INSTALLED_APPS += ( 'theming', )
    
  2. 将“theming.middleware.themingMiddleware”添加到MIDDLEWARE_CLASSES

    MIDDLEWARE_CLASSES += ( 'theming.middleware.ThemingMiddleware', )
    
  1. 将“theming.loaders.themeloader”添加到TEMPLATE_LOADERS

    TEMPLATE_LOADERS += ( 'theming.loaders.ThemeLoader', )
    
  1. 声明THEME_ROOTMEDIA_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')
    
  2. 声明MEDIA_URL

    MEDIA_URL = '/media/'
    
  3. 声明THEME_MEDIA_ROOTyTHEME_MEDIA_URL

    THEME_MEDIA_ROOT = os.path.join(MEDIA_ROOT, 'themes')
    THEME_MEDIA_URL = os.path.join(MEDIA_URL, 'themes')
    
  4. 声明主机/主题配置元组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

学分

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java当我点击MainActivity中的按钮以显示其他活动时,它不起作用   java游戏!框架:在请求之间获取控制器的组件/字段/对象   JavaBlackBerry:调用计算器并检索值?   java Struts2 jQuery插件提交按钮   java无法将更新的画布绘制到活动   java如何将Gson值放入HashMap   使用截取时出现java错误:RecyclerView:未连接适配器;跳过布局   java组织。冬眠HibernateException:在Hibernate搜索中编制索引时出错(在事务完成之前)   java Swagger服务器存根生成工作流   java JInternalFrame底部阴影问题   java nio缓冲区类中limit()的用法是什么   java水平回收器视图内部选项卡布局   java Maven无法找到依赖项   java如何管理不同应用程序实例的权限文件?