- Python Pyramid教程
- Python Pyramid - 主页
- Python Pyramid - 概述
- Pyramid - 环境设置
- Python Pyramid - Hello World
- Pyramid - 应用程序配置
- Python Pyramid - URL 路由
- Python Pyramid - 查看配置
- Python Pyramid - 路由前缀
- Python Pyramid - 模板
- Pyramid - HTML 表单模板
- Python Pyramid - 静态资源
- Python Pyramid - 请求对象
- Python Pyramid - 响应对象
- Python Pyramid - 会话
- Python Pyramid - 事件
- Python Pyramid - 消息闪烁
- Pyramid - 使用 SQLAlchemy
- Python Pyramid - Cookiecutter
- Python Pyramid - 创建项目
- Python Pyramid - 项目结构
- Python Pyramid - 包结构
- 手动创建项目
- 命令行Pyramid
- Python Pyramid - 测试
- Python Pyramid - 日志记录
- Python Pyramid - 安全
- Python Pyramid - 部署
- Python Pyramid有用资源
- Python Pyramid - 快速指南
- Python Pyramid - 有用的资源
- Python Pyramid - 讨论
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