在业务事务dsl中定义用户情景

stories的Python项目详细描述


https://raw.githubusercontent.com/dry-python/brand/master/logo/stories.png

traviscodecovdocsgitterpypiblack


业务交易DSL

安装

所有发布的版本都托管在python包索引上。你可以 使用以下命令安装此包。

pip install stories

使用量

stories提供了一种定义复杂业务场景的简单方法 包括许多处理步骤。

fromstoriesimportstory,arguments,Success,Failure,ResultclassSubscribe:@story@arguments('category_id','user_id')defbuy(I):I.find_categoryI.find_profileI.check_balanceI.persist_subscriptionI.show_subscriptiondeffind_category(self,ctx):category=Category.objects.get(id=ctx.category_id)returnSuccess(category=category)deffind_profile(self,ctx):profile=Profile.objects.get(user_id=ctx.user_id)returnSuccess(profile=profile)defcheck_balance(self,ctx):ifctx.category.cost<ctx.profile.balance:returnSuccess()else:returnFailure()defpersist_subscription(self,ctx):subscription=Subscription(ctx.category,ctx.profile)subscription.save()returnSuccess(subscription=subscription)defshow_subscription(self,ctx):returnResult(ctx.subscription)
>>>Subscribe().buy(category_id=1,user_id=1)<Subscriptionobject>>>>_

这种代码样式允许您清楚地分离实际的业务场景 从实现细节。

许可证

Stories库是根据两条BSD许可证提供的。

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

推荐PyPI第三方库


热门话题
ApachePOI如何通过java从excel文件中删除空白列?   linux到后台Java服务应用程序的简单发送/接收接口   java ActionBarPullToRefresh什么都没发生   java从millis获取错误的整数天   java相同的代码在两个不同的包上表现不同   java将每个新的char元素写入一个文件(如果被覆盖)   mysql如何在Java中通过外键链接的多个表中插入数据   java环境下mysql网络文件访问   java当使用构建器模式时,为什么我不应该重用builderobject来访问对象配置?   java jQueryServlet post异常失败   java应该使用什么逻辑来创建像《愤怒的小鸟》中那样的锁屏   java Android:在不滑动的情况下更改ViewPager中的片段   java在使用我的程序逻辑时获得空输出