Python Pyramid - 手动创建项目


Cookiecutter 实用程序使用预定义的项目模板来自动生成项目和包结构。对于复杂的项目,它可以节省大量手动工作来正确组织各种项目组件。

但是,可以手动构建 Pyramid 项目,而无需使用 Cookiecutter。在本节中,我们将了解如何通过以下简单步骤构建名为 Hello 的 Pyramid 项目。

安装程序.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.

开发.ini

Pyramid 使用PasteDeploy配置文件主要用于指定主应用程序对象和服务器配置。我们将使用hello包的 Egg Info 中的应用程序对象,以及 Waitress 服务器,侦听本地主机的端口 5643。因此,将以下代码片段保存为development.ini 文件。

[app:main]
use = egg:hello

[server:main]
use = egg:waitress#main
listen = localhost:6543

__init__.py

最后,应用程序代码驻留在该文件中,这对于将 hello 文件夹识别为包也至关重要。

该代码是具有hello_world()视图的基本 Hello World Pyramid 应用程序代码。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