金字塔框架集成,用单独的、易于测试的代码扩展sqlalchemy orm类。

pyramid_alchem的Python项目详细描述


好的框架,比如[金字塔][]和[角度][],可以帮助开发人员编写
可测试的代码。[sqlalchemy][]是一个很好的框架。但是,让模型实例从数据库查询返回的便利性鼓励开发人员编写大型orm类,这些类可能很难测试。

这种方法的缺点是在
便利性方面的损失:分离的,默认情况下,不提供易于测试的代码,因为
数据库查询返回的模型实例的属性。

[pyramid-alchemy][]提供了一个“add-model-alchemy-method”金字塔
[configuration-directive](),它以与“add-request-method”金字塔扩展[sqlalchemy-orm][]类相同的方式扩展[sqlalchemy-orm][]类。使用这个
指令,开发人员可以编写易于测试的代码,这些代码可以作为模型实例属性方便地使用。例如,如果在金字塔应用程序中[include][]this


`` python
from.model import spam


def get_eggs(instance,source='hens',limit=9,offset=0):
“示例orm instance method,作为一个独立的函数实现。“

query=instance.query.filter_by(source=source)
return query.offset(offset).limit(limit)

def includeme(config):
config.add_model_method(spam,get_eggs,“get eggs”)
```

您可以扩展实现接口的任何模型实例。
例如,如果您的模型是这样的:

``python
来自sqlalchemy.ext.declarative import declarative_base
来自zope.interfaces import implementer


from.interfaces import ifilling

base=declarative_base()

@implementer(ifilling)
类ham(base):
#…

@implementer(ifilling)
类垃圾邮件(base):

````

“get撸eggs”)
````


http://docs.sqlalchemy.org/en/latest
[金字塔炼金术]:https://github.com/thruflo/pyramd炼金术
[配置指令]:http://docs.pylonsproject.org/projects/pyramd/en/latest/narr/extconfig.html
[sqlalchemy orm]:http://docs.sqlalchemy.org/en/latest/orm
[扩展金字塔请求]:http://docs.pylonsproject.org/projects/pyramid/en/latest/api/config.html pyramid.config.configurator.add_request_method
[包含]:http://docs.pylonsproject.org/projects/pyramid/en/latest/api/config.html pyramid.config.configurator.include
[精简]:http://blog.codeculate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/

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

推荐PyPI第三方库


热门话题
spring引导服务器忽略java上载请求   java多个驼峰路由会导致大量线程吗?   java 安卓单签入回收器gridLayout管理器   Java中指向类的不同实例的对象数组   java的启动/停止和打开/关闭等分组功能是否违反了单一责任原则?   java hibernate组件映射与自定义值类型   java如何使用不同的JDK在Jenkins作业中使用JDK8   java从匹配器获取字符串的特定部分   java通过在Spark数据框内的数组列中映射来创建新列   servlet的java Tomcat配置   java多个活动不在一个应用程序安卓 studio中   javajsf:view beforePhase在我离开页面时多次触发   javascript如何使用“java脚本”进行加密,使用和“java”进行解密   java My App不是从URL ASPX读取简单的JSON   java在RESTish web服务中应用DDD原则