Pyramid中如何将models.py文件的内容分布到多个文件中
2012-08-22 15:10 JustRun 阅读(411) 评论(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.py
和moo.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
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名justrun(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。