我一直在寻找一个框架来简化Django应用程序中相当复杂的工作流程的开发.我希望能够使用该框架来自动化状态转换,应用权限,像审计日志记录和通知也许有些演员.
我看过一些关于同一主题的旧信息,但在过去的2 - 3年里并没有太多.我听说过的主要选择是GoFlow(自2009年2月起未更新)和django-workflow(似乎更活跃).
有人用这些包吗?它们是否成熟和/或与现代(1.3)Django兼容?还有其他值得考虑的选择可能会得到更好或更好的支持吗?
我能找到的所有解决方案都建议使用.live()
方法.但截至今天它已被弃用.
.hover()
完美地适用于动态创建的"li"元素.但是,一旦我追加新的"李" .hover()
根本没有触发.
有谁想过这个吗?
我正在使用PyParsing编写一个查询语言解析器,而且我已经陷入了(我相信是)一个前瞻问题.查询中的一个子句类型旨在将字符串拆分为3个部分(fieldname,operator,value),使得fieldname是一个单词,operator是一个或多个单词,value是单词,带引号的字符串或带括号的列表这些.
我的数据看起来像
author is william
author is 'william shakespeare'
author is not shakespeare
author is in (william,'the bard',shakespeare)
Run Code Online (Sandbox Code Playgroud)
我对此子句的当前解析器编写为:
fieldname = Word(alphas)
operator = OneOrMore(Word(alphas))
single_value = Word(alphas) ^ QuotedString(quoteChar="'")
list_value = Literal("(") + Group(delimitedList(single_value)) + Literal(")")
value = single_value ^ list_value
clause = fieldname + originalTextFor(operator) + value
Run Code Online (Sandbox Code Playgroud)
显然这会失败,因为operator
元素是贪婪的,并且value
如果它可以吞噬它.从阅读其他类似的问题和文档,我已经收集到我需要用一个NotAny
或那个来管理这个前瞻FollowedBy
,但是我还没有弄清楚如何使这个工作.
在我的工作场所,我必须管理许多(目前数十个,但最终可能数百个)Python Web应用程序,可能运行各种框架,库等(所有版本都有).到目前为止,Virtualenv一直是管理人员的救星,但我仍然希望能够更好地管理事情,尤其是在管理软件包升级方面.
我想过几个场景
选项1:使用pip为每个virtualenv中的每个项目安装所有必需的模块,根据需要单独升级每个模块.这将需要每次升级的大量时间成本,并且需要额外的文档来跟踪事物.可能会通过一些管理脚本来促进.
选项2:在中央存储库中安装任何应用程序使用的所有库,使用符号链接轻松地为所有项目更改一次版本.轻松升级和集中管理,但放弃了使用virtualenv的一些最好的好处.
选项3:以某种方式将上述两者混合,集中最常见的库和/或可能需要升级的库,并将其余的本地安装到每个virtualenv.
还有其他人有类似的情况吗?处理这个问题的最佳方法是什么?