我正在金字塔中开发一个相当大的项目.我之前用过django.我非常喜欢它构建项目的方式,并将功能封装到应用程序中.我想用金字塔实现相同的结构.我知道金字塔非常灵活,但是我需要一些帮助来实现松散耦合的相同结构.项目结构应该类似于:
Project/
app1/
models.py
routes.py
views.py
app2/
models.py
routes.py
views.py
Run Code Online (Sandbox Code Playgroud)
有什么建议?
Mic*_*kel 28
由于金字塔首先不对您的包结构做出任何假设,因此您划分应用程序的任何方式最终都会在配置上非常相似.但是,如果您将应用程序分解为某些不同的包,则可以(可选)利用该config.include()指令将每个包包含到主配置中.
例如:
# myapp/__init__.py (main config)
def main(global_config, **settings):
config = Configurator(...)
# basic setup of your app
config.include('pyramid_tm')
config.include('pyramid_jinja2')
# add config for each of your subapps
config.include('project.app1')
config.include('project.app2')
# make wsgi app
return config.make_wsgi_app()
# myapp/app1/__init__.py (app1's config)
def includeme(config):
config.add_route(...)
config.scan()
# myapp/app2/__init__.py (app2's config)
def includeme(config):
config.add_route(...)
config.scan()
Run Code Online (Sandbox Code Playgroud)
在每个子应用程序中,您可以定义视图/模型/等.
通常,您可能希望在公共设置中创建SQLAlchemy(或其他数据库)会话,因为您的不同应用程序可能都使用相同的引擎.