Python Pyramid 包结构
Cookiecutter 工具会在同名的父项目文件夹中自动创建一个包文件夹。该包文件夹由以下文件和子文件夹组成。
init.py
一个文件夹需要 __init__.py 文件,这样它才能被当作一个 Python 包。 testproj 包也有这个文件,它基本上声明了Pyramid WSGI应用项目,以便development.ini将其作为入口点。
应用程序对象是由 main() 函数返回的。它通过包括运行cookiecutter时选择的模板库来配置应用程序注册表,包括 路由 模块,并通过扫描现有的包将视图添加到配置器中。下面的Python代码被自动生成为 __init__.py 文件。
routes.py
Cookiecutter工具自动生成一个Python脚本,其中有一个名为 includeme()的 函数 。 它添加了一个静态路由和一个指向’/’URL模式的主页路由。
这些路由是由上面解释的 __init__.py 文件中的 main () 函数添加到应用程序的配置中。
视图包
项目包(在我们的例子中是 testproj 包)包含这个视图子包–一个包含空白的 __init__.py 的文件夹,一个名为default.py的Python模块,包含定义一个名为 my_view() 的视图函数 。 它将项目的名称作为上下文发送到预先建立的模板 mytemplate.jinja2中 。
default.py 脚本也导入了models子包中 mymodel 的定义。这个视图包还在notfound.py文件中定义了一个 notfound 视图。
静态文件夹
testproj 包文件夹下的这个文件夹包含了Pyramid标志文件和主页的theme.CSS。
模板文件夹
我们知道,网页模板需要存储在templates文件夹中。这个子文件夹包含jinja2模板。这里我们有一个名为 layout.jinja2 的基础模板,它被 mytemplate.jinja2 继承,由 my_view() 视图函数呈现。
模型包
在 tesptproj 包文件夹下的这个子包包含了 mymodel.py ,它有SQLAlchemy模型的定义,名为 MyModel。
meta.py 在SQLAlchemy中声明了一个声明性基类的对象。