Python Pyramid - 创建项目
假设 Pyramid 虚拟环境已启动并正在运行,并且其中安装了 Cookiecutter。 创建 Cookiecutter 项目的最简单方法是按照以下命令使用预构建的入门模板 −
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout 2.0-branch
模板被下载,用户被询问他选择的项目名称 −
project_name [Pyramid Scaffold]: testproj repo_name [testproj]:
然后选择模板语言。
选择 template_language −
1 - jinja2 2 - chameleon 3 - mako Choose from 1, 2, 3 [1]: 1
由于我们熟悉jinja2,所以选择1。 接下来,使用 SQLALchemy 作为后端。
Select backend: 1 - none 2 - sqlalchemy 3 - zodb Choose from 1, 2, 3 [1]: 2
在 testproj 文件夹中,创建了以下文件结构 −
│ development.ini │ MANIFEST.in │ production.ini │ pytest.ini │ README.txt │ setup.py │ testing.ini │ ├───testproj │ │ pshell.py │ │ routes.py │ │ __init__.py │ │ │ ├───alembic │ │ │ env.py │ │ │ script.py.mako │ │ │ │ │ └───versions │ │ README.txt │ │ │ ├───models │ │ meta.py │ │ mymodel.py │ │ __init__.py │ │ │ ├───scripts │ │ initialize_db.py │ │ __init__.py │ │ │ ├───static │ │ pyramid-16x16.png │ │ pyramid.png │ │ theme.css │ │ │ ├───templates │ │ 404.jinja2 │ │ layout.jinja2 │ │ mytemplate.jinja2 │ │ │ └───views │ default.py │ notfound.py │ __init__.py │ └───tests conftest.py test_functional.py test_views.py __init__.py
外部 testproj 文件夹有一个内部 testproj 包子文件夹和测试包。内部的 testproj 子文件夹是一个包,包含模型和脚本、子包、静态文件夹和模板文件夹。
接下来,使用 Alembic 初始化和升级数据库。
# Generate your first revision. alembic -c development.ini revision --autogenerate -m "init" # Upgrade to that revision. alembic -c development.ini upgrade head
Alembic 是一种轻型数据库迁移工具,可与 SQLAlchemy Database Toolkit for Python 配合使用。 外部项目文件夹现在将显示一个 testproj.sqlite 数据库。
development.ini 文件提供了数据库的默认数据。 通过以下命令用它填充数据库。
initialize_testproj_db development.ini
Cookiecutter 实用工具还在测试包中生成测试套件。 它们基于 PyTest 包。 继续并查看测试是否通过。
Pytest ================ test session starts ====================== platform win32 -- Python 3.10.1, pytest-7.1.2, pluggy-1.0.0 rootdir: F:\pyram-env\testproj, configfile: pytest.ini, testpaths: testproj, tests plugins: cov-3.0.0 collected 5 items tests\test_functional.py .. [ 40%] tests\test_views.py ... [100%] =============== 5 passed, 20 warnings in 6.66s ===============
Cookie Cutter 使用 Waitress 服务器。 Pyramid 应用程序通过以下命令在本地主机端口 6543 上提供服务 −
pserve development.ini Starting server in PID 67700. 2022-06-19 23:43:51,308 INFO [waitress:485][MainThread] Serving on http://[::1]:6543 2022-06-19 23:43:51,308 INFO [waitress:485][MainThread] Serving on http://127.0.0.1:6543
打开浏览器,在里面访问http://localhost:6543/。 新建项目的首页会显示如下 −
Debug 工具栏
您可以在主页的右上角找到一个较小的 Pyramid 徽标。 单击它可以打开一个新选项卡和一个调试工具栏,其中提供了有关该项目的大量有用信息。
例如,history 标题下的 SQLAlchemy 选项卡显示 SQLAlchemy 查询,显示根据 development.ini 中的默认数据创建的模型的结构。
Global 标题再次显示 Introspection、Routes 等选项卡,如下所示。 单击"路由"选项卡以查看路由及其在应用程序配置中定义的匹配模式。