默认的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

相关文章:

  • 2021-12-22
  • 2022-01-31
  • 2022-02-11
  • 2022-01-23
  • 2021-09-06
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-12
  • 2021-12-31
  • 2022-12-23
  • 2021-11-29
  • 2022-12-23
  • 2021-07-09
  • 2022-01-02
相关资源
相似解决方案