Python Pyramid - 手动创建项目
Cookiecutter 实用程序使用预定义的项目模板自动生成项目和包结构。 对于复杂的项目,它可以节省大量手动组织各种项目组件的工作量。
但是,可以手动构建 Pyramid 项目,而无需使用 Cookiecutter。 在本节中,我们将看到如何通过以下简单步骤构建一个名为 Hello 的 Pyramid 项目。
setup.py
在 Pyramid 虚拟环境中创建一个项目目录。
md hello cd hello
并将以下脚本保存为setup.py
from setuptools import setup requires = [ 'pyramid', 'waitress', ] setup( name='hello', install_requires=requires, entry_points={ 'paste.app_factory': [ 'main = hello:main' ], }, )
如前所述,这是一个 Setuptools 安装文件,它定义了为您的包安装依赖项的要求。
运行以下命令安装项目并生成名为 hello.egg-info 的'egg'。
pip3 install -e.
development.ini
Pyramid 使用PasteDeploy 配置文件指定主要的应用程序对象,以及服务器配置。 我们将使用 hello 包的 egg 信息中的 application 对象和 Waitress 服务器,监听本地主机的端口 5643。 因此,将以下代码片段保存为 development.ini 文件。
[app:main] use = egg:hello [server:main] use = egg:waitress#main listen = localhost:6543
__init__.py
最后,应用程序代码驻留在这个文件中,这对于 hello 文件夹被识别为一个包也是必不可少的。
代码是一个基本的 Hello World Pyramid 应用程序代码,具有 hello_world() 视图。 main() 函数将此视图注册到具有"/" URL 模式的 hello 路由,并返回由 Configurator 的 make_wsgi_app() 方法给出的应用程序对象。
from pyramid.config import Configurator from pyramid.response import Response def hello_world(request): return Response('<body><h1>Hello World!</h1></body>') def main(global_config, **settings): config = Configurator(settings=settings) config.add_route('hello', '/') config.add_view(hello_world, route_name='hello') return config.make_wsgi_app()
最后,在 pserve 命令的帮助下为应用程序提供服务。
pserve development.ini --reload