一种扩展,允许可重用的应用程序为不同的样板文件提供模板和静态文件集。

aldryn-boilerplates的Python项目详细描述


https://travis-ci.org/aldryn/aldryn-boilerplates.svg?branch=develophttps://img.shields.io/coveralls/aldryn/aldryn-boilerplates.svg

概念

奥尔德林样板旨在解决一个常见的django问题。有时可重用的应用程序需要 为了提供自己的模板和静态文件,但是为了有用,这些需要提交 他们自己对特定的前端期望-从而迫使采用者超越这些期望 文件以使应用程序适应其他前端,或创建项目的新分支 针对不同的前端设置。

为可重用的应用程序提供丰富完整的前端尤其困难, 因为在创建有用的前端和创建不可知的前端之间存在冲突。

解决方案是在 可重用的应用程序,这就是Aldryn样板所做的。

Aldryn平台上,样板是一个完整的前端集 期望、假设、意见、约定、框架、模板、静态文件等-a 前端开发的标准工作方式。

事实上,许多开发人员都使用自己喜欢的标准前端工具和代码集。 对于他们所有的项目;实际上,使用他们自己的样板,即使他们不使用这个名字。 Aldryn样板旨在使在 可重用的应用程序,并在它们之间切换。

如果某个特定的前端框架或系统的用户希望将其与某个可重用的 应用程序,它们现在不再需要破解并替换现有的,或者在 每次项目级别。使用aldryn样板,他们只需add 前端文件到应用程序,连同现有支持的样板文件。

项目中的一个简单设置告诉支持Aldryn样板的应用程序 使用。

使用Aldryn样板

aldryn样板文件不会改变templatesstatic中常规文件的方式 发现-支持Aldryn样板文件的可重用应用程序也可以非常好地工作 在一个没有安装的项目中。

但是,为了支持aldryn样板,您的应用程序应该将样板放在特定的位置 boilerplates/my-boilerplate-name/templates/和中的前端文件 boilerplates/my-boilerplate-name/static/

例如,添加对标准aldryn样板文件(aldryn-boilerplate-bootstrap3)的支持 对于您的应用程序,将文件放在boilerplates/bootstrap3/templates/中,然后 boilerplates/bootstrap3/static/

提示

别忘了将boilerplates添加到Manifest.in中,同时添加statictemplates 创建python包时。

注意

约定是在github存储库名称前面加上aldryn-boilerplate-。你的 样板可以称为aldryn-boilerplate-mycompany-awesome。使用它 在项目中,设置ALDRYN_BOILERPLATE_NAME = 'mycompany-awesome'并放置模板 将静态文件放入boilerplates/mycompany-awesome/插件。 ALDRYN_BOILERPLATE_NAME根据 "identifier": "mycompany-awesome"boilerplate.json中提交样板时 奥尔德林。

安装

注意

Aldryn样板预先安装在Aldryn平台上, ALDRYN_BOILERPLATE_NAME自动设置。

pip install aldryn-boilerplates

配置

django 1.8+

一般情况下,配置保持不变,但您应该尊重 由Django 1.8介绍。 尤其是在django 1.8中,上下文处理器从^{tt19}移走$ 到django.template

确保包含aldryn_boilerplatesINSTALLED_APPS,调整 STATICFILES_FINDERS,最后配置TEMPLATES

对于TEMPLATES,您需要添加 aldryn_boilerplates.context_processors.boilerplatecontext_processors 并像对django之前的版本那样修改loaders。 到1.8。

注意在下面的示例中,我们正在更改默认值, 所以,如果你使用的是定制的东西-别忘了添加。

下面是一个简单的c配置:

INSTALLED_APPS = [
    ...
    'aldryn_boilerplates',
    ...
]

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'aldryn_boilerplates.staticfile_finders.AppDirectoriesFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'OPTIONS': {
            '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',
                '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',
                'aldryn_boilerplates.context_processors.boilerplate',
            ],
            'loaders': [
                'django.template.loaders.filesystem.Loader',
                'aldryn_boilerplates.template_loaders.AppDirectoriesLoader',
                'django.template.loaders.app_directories.Loader',
            ],
        },
    },
]

对现有包

添加ALDRYN样板支持

推荐的方法是向AldRyn模板添加一个依赖项并移动现有的 statictemplate文件到样板文件夹(完全删除statictemplates)。如果你正在用某种方法重构现有模板 新建,将它们放入legacy样板文件夹并设置ALDRYN_BOILERPLATE_NAME='legacy' 对于仍在使用旧模板的项目。 然后,新的闪亮项目可以使用ALDRYN_BOILERPLATE_NAME='bootstrap3'来使用新的 Aldryn引导模板(aldryn-boilerplate-bootstrap3)。或其他 那件事的样板。

删除statictemplates的好处是删除可能不推荐使用的模板 从非常突出的位置,这将迷惑新来者。它也防止了 模板和静态文件扰乱了您的设置。

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

推荐PyPI第三方库


热门话题
java我是否需要构造一个带有*非final*但不可变字段的不可变类?   java如何使用jaxb读取属性?   java为什么不打印空值以外的任何内容?   java Struts2如何在不使用struts的情况下重定向到操作。xml?   java方法参数未在其实现中使用   在Java中更改终端内部的变量   Spring中的java依赖项注入失败   java如何使用getAttribute Selenium防止获取重复的HREF   优先级队列的java顺序不符合预期   java如何使用Spring TaskExecutor在应用程序的所有请求中使用单个任务池   java Firebase RecyclerView不会从数据库中检索项目并将其显示在屏幕上。屏幕是空的   java将YUV_420_888转换为字节数组   spring停止使用Java缓存文件   java在执行maven clean安装时,我在eclipse智能家居中遇到了这种错误   stream Java=下载缓冲区未满?冲洗/缓冲是如何工作的?   查询SQL server时重置java JDBC连接   java如何避免在两个函数中使用相同的逻辑。   转换java。lang.Boolean到Scala Boolean