代码改变世界

Pyramid中如何将models.py文件的内容分布到多个文件中

  JustRun  阅读(414)  评论(1编辑  收藏  举报

默认的Pyramid代码结构中,就只有一个models.py文件,在实际项目中,如果需要对models进行分类,放到不同文件下,应该怎么办?

我们通过下面的文件结构,将models.py改成一个package.

 

myapp
    __init__.py
    scripts
        __init__.py
        initialize_db.py
    models
        __init__.py
        meta.py
        foo.py
        moo.py

 

上面的 meta.py, 在代码中定义一个其它model文件共享Base和DBSession.

Base = declarative_base()
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension))

foo.py和moo.py就是具体的model定义

foo.pymoo.py 使用meta.py中定义的base

from .meta import Base

class Foo(Base):
    pass

为了保证定义的model能够在程序中被启用,在models/__init__.py中引入它们:

from .meta import DBSession
from .foo import Foo
from .moo import Moo
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示