非理性繁荣

向LifeFlow添加任意mods

1月15日,2008。根据生命流

作为我最近扩展到生命流我遇到了一些情况,我想让那些部署生命流的人有更多的灵活性,但不会破坏他们的SVN结算。即使对于那些不希望跟踪来自SVN的变更的人来说,拥有一个干净的、可预测的系统来扩展他们的部署也是有益的。

有鉴于此,LifeFlow现在有了一个可扩展的mod系统。其背后的概念是允许部署LifeFlow的人以最少的额外开销来选择功能部件。

本文将介绍两个使用模块以简单但强大的方式扩展生命流的示例。第一个是使用静电发生器创建静态文件以帮助在共享主机或低功耗VP上运行LifeFlow。

第二个例子是使用mod系统添加动态博客上下文到您的条目。

使用带有LifeFlow的StaticGenerator

如果您在共享主机上运行,可能会对运行django有一些性能问题,尤其是当你的内容变得非常流行的时候。这个静态文件mod有助于缓解一些压力。

在每次保存日志时启用该选项,将生成日志的静态呈现,连同最新的首页副本,标签页,以及文章系列页面。这意味着大部分内容将作为静态页面使用,包括在激增期间可能受到冲击的所有内容(你的内容本身,博客条目,即使Django完全离线,也可以访问您的网站。

让我们看看打开静态文件国防部。您只需在settings.py文件中添加一些设置:

#你可能已经有了生命流模式,是这样的,那么只需添加“静态文件”生命流模式='静态文件',)Web根目录=“/folder/to/generate/files/in/”

这就是启用LifeFlow mod所需的全部功能。这真的很简单。注意,LifeFlow/mods目录中有一个名为“static_files”的模块,你基本上已经有了这样的想法:只要把一个模块放在那个文件夹里(它可以是一个带有uu in it_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuy文件的模块,或者它可以是一个简单的python文件)。然后将该模块的名称添加到lifeflow_mods参数中。就是这样。

可以,所以我对没有第二步的事撒了个小谎。这是因为静态文件在那里改装第二步,这有点愚蠢:在向Django请求文件之前,必须先配置宿主环境以检查静态文件。

根据您的具体设置,执行此操作的详细信息将有所不同。在不久的将来,我将有另一篇关于这个主题的文章,但现在你可以查看StaticGenerator的文档它有一个完整的nginx例子。大多数共享主机(例如那些使用DreamHost的主机)会发现自己需要修改一个.htaccess文件来为其共享目录配置Apache,我正在开发一个条目来涵盖这个具体情况(在DreamHost上部署LifeFlow)。任何想自己深入研究这个问题的人都会找到比modrewrite文档.

扩展动态博客上下文

现在我们来看另一个例子。LifeFlow中的一个好工具是动态博客上下文,它允许您在标记中编写格式化的引用,而不需要自己进行引用。

这些动态参考的库存库非常有用,但是你可能会发现自己想要一些还没有包括的东西(考虑给我一个包含变化的diff,如果合理的话,它很可能被包括在内)。也许您需要一段与您自己构建的第二个应用程序相关的动态上下文。

假设您希望在名为的新Django应用程序上包含最流行的下载动态上下文。下行床.我们还假设相关模型是downer.models.download下载,以及下载模型有一个名为流行的返回按流行程度排序的项目。

现在我们要创建一个动态上下文,允许[Popular1]链接到最流行的下载。让我们看看实现这一点有多困难。

在LifeFlow/mods中创建一个新文件downer_context.py。打开并添加此代码:

#LifeFlow/mods/downer_context.py生命流.markdown进口MDX_生命流作为低频塞塔特低频“旧的\生成\语法”低频.生成语法DEF新的\生成\语法()句法=低频.旧的\生成\语法()DEF流行的进入STR第n次):Downer.型号进口下载动态链接库=下载.流行的.全部的()第n次]返回STR%动态链接库.获取绝对URL句法[(“流行”=流行的返回句法塞塔特低频“生成语法”新的\生成\语法

然后您只需转到settings.py文件并修改生命流模式设置如下:

生命流模式='唐纳上下文',)

你的新博客条目可能包含流行的我们刚刚创建的动态引用。

这不是扩展动态引用的一种特别华丽的方式,但这里的重点主要是,您可以创建对LifeFlow的嵌入式扩展,而无需创建一个全新的Django应用程序。

诚然,在许多情况下,只需添加一个定制的django应用程序,你自己的工艺就会更干净,更有效率(因为它不需要考虑理论上的可能性,它只需要处理它实际处理的内容)。添加到LifeFlow的简单mod背后的一个意图是使其成为一个可以定制和修改的平台,而使用django或python的专业知识很少。

在这一点上,我认为它有一个非常灵活的结构,它允许有经验的用户进入并自定义他们的心内容,但是提供了足够好的默认设置,使之成为一个有用的软件,对于那些不想通过箍箍来让自己的博客软件工作的人来说。

我有兴趣听到任何关于改进的反馈或建议。