一个django应用程序,使用django manage.py扩展命令和fabric进行部署。

django-fabtastic的Python项目详细描述


django fabtastic
==

==

部署django_u项目并不是一项天生有趣的任务。这并不是一个非常困难的过程,但是,有很多乏味、重复的任务需要宝贵的时间和按键。部署、维护和更新django项目的方法几乎是无限的,每种方法都有其各自的优点和局限性。
django fabtastic是"duo interactive"的部署理念,也是我们用于自己项目的理念。

这个django_u应用程序可以放到任何项目中,为您提供一种快速、简单、标准化的部署方法。

我为什么要使用fabtastic?
----

它很简单,对我们来说非常有效。
*我们不喜欢为我们的
少数生产和开发项目维护一堆稍有不同的fab文件。无论何时对其中一个项目进行增强,我们都必须花费时间将其移植到其他项目中,以便从增强中获益。
*我们的部署非常相似,几乎可以执行相同的步骤来部署所有这些项目。现在,我们可以将示例fabfile.py放入每个项目中,将fabtastic添加到django_u settings.py中,然后我们就可以开始担心开发产品等更重要的事情了。不要试图成为一刀切的解决方案。它是针对我们的部署需要的。因此,如果您需要实现一个
功能,请随时在跟踪器中打开一个问题,或者更好的方法是,
分叉并发送拉取请求。

就我们对希望使用此应用程序的用户所做的假设而言:

*您运行的是django 1.1或更高版本。
*我们强烈建议pyth2.6+,但不是3.x。它很可能在早期的python版本上运行得很好,但是我们没有在python 2.6下进行测试。
*您正在使用或想要使用fabric。
*我们目前只实现postgres db操作。不过,我们希望为其他人提供补丁。
*您正在使用virtualenv和virtualenvwrapper。

我们喜欢布料。布料[谢天谢地]根本不与django绑定,django很棒。然而,我们发现自己在django
设置和环境方面的杂耍太频繁了。我们还希望
我们可以在
任意服务器、登台或开发机器上运行部署过程的某些部分,而无需考虑。


fabric*可以*做得很好,但我们不喜欢用所有额外的su把
fab文件弄乱。部署过程的B部分。我们还意识到,我们的部署脚本完全从客户机运行意味着做出了一些非常糟糕的假设:

*所有本地设置中的值。py(和部署/登台设置)
始终与生产中的值同步。
*不覆盖(local_settings.py,anyone?)价值观存在于产品中。

这给我们带来了一些痛苦,因为我们倾向于将敏感设置放在
git存储库之外。克服上述限制并纠正我们的假设的最佳方法是将部署过程分块到
manage.py命令和一些根据需要调用它们的可包含结构脚本中。

ent
保证始终具有正确设置和django环境的命令在我们所有的机器上:本地、暂存或生产。

幸运的是,
``pip``可以直接从中提取。

*将``git+http://github.com/duointeranactive/django fabtastic.git` egg=fabtastic`
添加到requirements.txt文件中。
*运行``pip install git+http://github.com/duointeranactive/django fabtastic.git` egg=fabtastic`
安装它。
*将"fabtastic"添加到settings.py中的"已安装的应用程序"中。
*如果运行``./manage.py help``,现在应该可以看到更多命令。
*请阅读本自述中的fabfile.py构造部分。通常,您可以将"example fabfile.py"复制到您的项目中,并根据需要对其进行修改。_示例fabfile.py:http://github.com/duointeractive/django fabtastic/blob/master/examples/fabfile.py


随时更新
----


,您可以运行`./manage.py ft\u fabtastic更新``以获取最新版本。还有一个fabric任务,即"fabtastic_update`."。

——


如果您下载了源发行版,请查看您的"examples/`
目录。最常见的例子是"fabfile.py"。如果您通过pip安装了
,您可以将浏览器指向此处继续操作。_这里:http://github.com/duointeractive/django fabtastic/blob/master/examples/fabfile.py


需要注意的重要一点是,我们在fabfile中所做的一切都是将我们想要的东西拉到一起。您可以自由地混合使用自己的自定义命令,
有选择地使用我们的命令,或者使用我们所有的命令,外加一些自己的命令。

django fabtastic主要用于duo的部署,因此其中一些命令旨在适应我们的使用情况。因此,除非您使用我们所有的依赖项,否则可能需要使下面的行更具体一点:


from fabtastic.fabric.commands import*


注意,您可以有选择地从
``fabtastic.fabric.commands``导入命令。请参阅"examples/fabfile.py"中的注释和示例。
有关模块的完整列表,请检查"fabtastic/fabric/commands"目录,
或查看我们的"git存储库"。_ git存储库:http://github.com/duointeranactive/django fabtastic/tree/master/fabtastic/fabric/commands/

……_ python:http://python.org
。_ Duo互动:http://duo interactive.com
…_结构:http://docs.fabfile.org/
…_ Django:http://djangoproject.com

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

推荐PyPI第三方库


热门话题
通过Java策略文件设置权限Hibernate Validator等   java@New注释不起作用   Linux下用java和C++进行socket通信   java如何正确地从数据库加载HashMap。yml文件?   在Java中创建子类的实例,是否创建其父类的实例   c#在Unity中使用Google Api Java类?   无法启动selenium。java中的WebDriver firefox在一个没有UI的盒子中   带iText 7的PDF中的java希腊字符   java中的日期格式解析异常。文本日期格式   java避免不可修改类的实例   java无法使用OpenCSV将JavaBeans写入CSV   java拥有Google PlayServices和OnConnect   java实例化发生在getInstance()之前还是getInstance()时?   java位图以错误的顺序添加到ArrayList