如何使用Pyramid框架在Ubuntu上构建PythonWeb应用程序
介绍
Web 框架提供了一种快速简便的方法来快速启动 Web 应用程序。 几乎每个 Web 框架都遵循 MVC 软件模式。 MVC 代表模型、视图和控制器。 它是一种区分和分离应用程序不同功能的方法,以简化其设计并允许每个部分独立于其他组件进行更改。
Pyramid 是一个用于 Python 应用程序的轻量级 Web 框架。 它允许您快速启动和运行基本的 Web 应用程序。 事实上,如果您愿意,它可以在单个文件中创建整个框架布局。
在本指南中,我们将向您介绍如何在您的 Ubuntu 系统上设置 Pyramid。 然后,我们将引导您完成基本命令和流程,使您能够使用此框架成功启动应用程序。
安装必备工具
在开始之前,您必须安装一些必备软件包。 由于 Pyramid 是一个 Python 框架,因此您将需要您的应用程序正在运行的 Python 版本。
我们将在本指南中使用 Python 3。 根据您安装的 Ubuntu 版本,这可能会默认包含在内。
无论哪种方式,您都应该运行以下命令来安装某些 Pyramid 扩展所需的开发头文件。 如果您没有安装 Python 3,这将作为依赖项引入。 此外,我们将下载 setuptools
包:
sudo apt-get update sudo apt-get install python3-dev python3-setuptools
我们还需要 virtualenv
包。 您可以通过 easy_install
命令执行此操作:
sudo easy_install virtualenv
您现在应该拥有开始使用 Pyramid 所需的基本组件。
配置应用环境
现在我们已经有了我们需要的 Python 版本和构建应用程序所需的引导工具,我们可以配置我们的应用程序环境。
virtualenv 包允许我们设置一个隔离的 Python 环境。 我们将首先进行设置,然后在此环境中安装 Pyramid 文件。
首先导航到您的主目录。 从这里,我们将创建一个目录来存放我们的项目文件:
cd ~ mkdir pyramid_sites cd pyramid_sites
在这个目录中,我们将创建我们的虚拟环境。 这将创建一个孤立的气泡,我们可以在其中安装 Python 工具和库,而不会影响我们系统的工具。
virtualenv --no-site-packages env
这会在我们当前的文件夹中创建一个名为“env”的目录。 这是安装环境文件的地方。
我们可以使用以下命令激活我们的虚拟环境,更改安装上下文:
source env/bin/activate
这将更改提示以包含虚拟环境。 这可以很容易地知道您是否在虚拟环境中。 如果以后需要停用环境,可以键入:
deactivate
不过,不要停用环境。 我们可以通过键入以下命令在虚拟环境中安装 Pyramid:
easy_install pyramid
这将为我们的框架安装所有必要的文件。
设置示例应用程序
Pyramid 框架的好处之一是它可以非常轻量级。 Web 框架可以在单个文件中实现。
分解一个文件配置
我们可以使用 Pyramid 项目 中的 示例创建一个文件配置。 这将是一个简单的“hello world”应用程序。 我们将主要使用它来显示通用配置文件的一些不同部分:
首先,为您的应用程序创建一个目录。
mkdir ~/pyramid_sites/hello_world cd ~/pyramid_sites/hello_world
在里面,我们可以创建一个 application.py
文件并用以下内容填充它:
nano application.py
from wsgiref.simple_server import make_server from pyramid.config import Configurator from pyramid.response import Response def hello_world(request): return Response('<h1>Hello world!</h1>') if __name__ == '__main__': config = Configurator() config.add_view(hello_world) app = config.make_wsgi_app() server = make_server('0.0.0.0', 8080, app) server.serve_forever()
让我们分块检查这个文件,这样我们就可以看到 Pyramid 是如何工作的。
在文件的开头,我们有 import 语句:
from wsgiref.simple_server import make_server from pyramid.config import Configurator from pyramid.response import Response
第一行导入 make_server
函数,当它被传递一个应用程序时,它可以创建一个简单的 Web 服务器。 第二行和第三行从 Pyramid 导入 Configurator
和 Response
函数。
这些函数分别用于为应用程序配置详细信息和设置参数以及响应请求。
接下来,我们有一个名为 hello_world
的函数定义:
def hello_world(request): return Response('<h1>Hello world!</h1>')
此函数代表我们应用程序的“视图”。 请记住,大多数 Web 框架都实现了 MVC(模型、视图、控制器)范式。 满足视图要求的函数负责呈现将传递回请求实体的文本。
在这种情况下,该函数在调用时使用我们之前导入的 Response
函数。 这会传回一个应该给客户端的值。 在我们的简单应用程序中,这是一个非常简单的视图实现。
接下来是程序的主要部分。 它从调用程序主要可执行部分的通用 Python 约定开始:
if __name__ == '__main__':
此行指定如果该文件是正在运行的“主”文件(意味着它没有被另一个文件导入和调用),则应运行以下命令。
config = Configurator() config.add_view(hello_world) app = config.make_wsgi_app() server = make_server('0.0.0.0', 8080, app) server.serve_forever()
这里的第一行从我们在程序顶部导入的 Configurator
函数创建的对象中创建了一个名为 config
的变量。
下一行调用此对象的 add_view
方法。 此方法用于定义应用程序可以使用的视图。 如您所见,我们传入了我们之前定义的 hello_world
函数。 这是该功能实际合并为视图的地方。
以下行实际上是通过调用配置对象的 make_wsgi_app
方法来创建 WSGI 应用程序的。 这使用对象的属性(例如我们添加的视图)来创建应用程序。
然后将此应用程序传递给我们导入的 make_server
函数,以创建一个可以启动 Web 服务器来为我们的应用程序提供服务的对象。 最后一行启动此服务器。
完成后保存并关闭文件。
要启动应用程序,您只需将 Python 指向它:
python application.py
现在,如果您导航到您在配置中定义的端口('8080'),您将看到您在视图函数中放置的文本:
http:// your_ip_address :8080
使用脚手架创建示例 Pyramid 应用程序
在前面的示例中,我们通过单个文件完成所有操作。 虽然这是展示使用 Pyramid 创建 MVC 应用程序的过程是多么紧凑和简单的好方法,但它并不总是最简单的处理方式。
像大多数流行的框架一样,Pyramid 可以使用“脚手架”来快速创建复杂的项目目录结构。 我们可以通过一个名为 pcreate
的工具来使用脚手架。
回到 Pyramid 目录并检查我们有哪些可用的脚手架:
cd ~/pyramid_sites pcreate -l
Available scaffolds: alchemy: Pyramid SQLAlchemy project using url dispatch starter: Pyramid starter project zodb: Pyramid ZODB project using traversal
第一个选项创建一个带有 SQL 集成的项目。 第二个创建一个基本项目,应用程序实例之间没有持久性。 如果您使用的是 Python 2,第三个可以创建一个应用程序以与 ZODB 一起运行。
我们可以通过选择模板并命名项目来创建一个脚手架项目:
pcreate -s starter first_project
这将创建一个以项目命名的目录,进入查看创建的文件:
cd first_project ls
CHANGES.txt development.ini first_project MANIFEST.in production.ini README.txt setup.cfg setup.py
这是比我们上一个示例大得多的文件集。 该文件夹下的文件主要用于配置。 程序本身主要包含在带有项目名称的子文件夹中。
要查看脚手架完成了什么,请运行设置脚本来为开发环境配置应用程序。
python setup.py develop
这将使用 development.ini
文件中可用的参数读取配置您的应用程序。
之后,我们可以通过键入以下内容为项目提供服务:
pserve development.ini
如果您访问您的 IP 地址,然后访问命令行中指定的端口号(应为“6543”),您将看到默认应用程序:
在终端中按“Ctrl-C”以停止 Web 服务器。
我们可以在配置文件中启用调试面板,以便我们获取有关应用程序的有价值信息。
编辑 development.ini
文件:
nano development.ini
在里面,在 [app:main]
部分的底部,添加此行以允许任何连接的主机查看调试工具栏:
[应用程序:主要] 。 . . . . . pyramid.includes = pyramid_debugtoolbar debugtoolbar.hosts = 0.0.0.0/0
保存并关闭文件。 现在,如果您重新启动服务器并重新加载网页,您将在右侧看到一个调试工具栏:
pserve development.ini
在这个项目的结构中,您可以配置复杂的 MVC 交互。
结论
我们刚刚触及了 Pyramid 可以做的事情的皮毛。 希望到此为止,您可以看到它具有基于 Python 约定的简单结构,并且足够灵活,可以从极其简单的站点扩展到需要复杂交互的更完整的设计。
浏览 Pyramid 的文档,以便更好地了解如何实现更大的应用程序。 该框架提供了许多工具,以使您的应用程序通过开发周期(包括集成测试)并投入生产。