如何使用 Pyramid 框架在 Ubuntu 上构建 Python 网络应用程序

介绍


网页框架提供了一个快速而简单的方法来启动一个网页应用程序. 几乎每个网页框架都遵循MVC软件模式. MVC代表模型,视图和控制器. 它是一种区分和分离应用程序的不同功能的方式,以简化其设计,并允许每个部件独立于其他组件进行更改。

Pyramid 是一个轻量级的 Web 框架,用于 Python 应用程序,它允许您快速启动和运行一个基本的 Web 应用程序,事实上,如果您想要的话,它可以在单个文件中创建整个框架布局。

在本指南中,我们将向您介绍如何在您的Ubuntu系统上设置Pyramid,然后我们将引导您通过基本的命令和流程,使您能够成功启动一个应用程序。

安装前提工具


在你开始之前,你必须安装一些先决条件包,因为Pyramid是一个Python框架,你需要你的应用程序正在运行的Python版本。

我们将在本指南中使用Python 3. 根据您已安装的Ubuntu版本,默认情况下可能包含此版本。

无论如何,你都应该运行以下命令来安装某些Pyramid扩展所需的开发标题文件. 如果你没有安装Python 3,这将被引入为依赖性。

1sudo apt-get update
2sudo apt-get install python3-dev python3-setuptools

我们还需要virtualenv包,您可以通过easy_install命令做到这一点:

1sudo easy_install virtualenv

您现在应该拥有开始使用金字塔所需的基本组件。

配置应用环境


现在我们有我们需要的Python版本和构建应用程序所需的启动工具,我们可以配置我们的应用程序环境。

虚拟v 包允许我们设置一个孤立的 Python 环境,我们会先设置这个环境,然后在这个环境中安装 Pyramid 文件。

从这里,我们将创建一个目录来容纳我们的项目文件:

1cd ~
2mkdir pyramid_sites
3cd pyramid_sites

在此目录中,我们将创建我们的虚拟环境,这将创建一个孤立的泡沫,在那里我们可以安装Python工具和库,而不会影响我们的系统工具。

1virtualenv --no-site-packages env

这会在我们当前的文件夹中创建一个名为env的目录,这是环境文件安装的地方。

我们可以用这个命令激活我们的虚拟环境,改变安装背景:

1source env/bin/activate

这将更改提示,以包括虚拟环境。这使您很容易知道您是否处于虚拟环境。如果您需要在以后关闭环境,您可以键入:

1deactivate

我们可以通过键入在虚拟环境中安装Pyramid:

1easy_install pyramid

这将为我们的框架安装所有必要的文件。

设置一个样本应用程序


金字塔框架的优点之一是它可以非常轻,而Web框架可以在一个文件中实现。

打破一个文件配置


我们可以使用 Pyramid 项目示例创建一个单个文件配置,这将是一个简单的Hello world应用程序,我们将主要使用它来显示一般配置文件的一些不同部分:

首先,为您的应用程序创建一个目录。

1mkdir ~/pyramid_sites/hello_world
2cd ~/pyramid_sites/hello_world

内部,我们可以创建一个application.py文件,并用以下内容填充它:

1nano application.py

 1from wsgiref.simple_server import make_server
 2from pyramid.config import Configurator
 3from pyramid.response import Response
 4
 5def hello_world(request):
 6    return Response('<h1>Hello world!</h1>')
 7
 8if __name__ == '__main__':
 9    config = Configurator()
10    config.add_view(hello_world)
11    app = config.make_wsgi_app()
12    server = make_server('0.0.0.0', 8080, app)
13    server.serve_forever()

让我们把这个文件分成碎片,以便我们可以看到金字塔是如何工作的。

在文件的头部,我们有进口陈述:

1from wsgiref.simple_server import make_server
2from pyramid.config import Configurator
3from pyramid.response import Response

第一行导入make_server函数,在传输应用程序时可以创建一个简单的Web服务器,第二行和第三行导入ConfiguratorResponse函数。

这些函数用于对应用程序配置细节和设置参数,并分别响应请求。

接下来,我们有一个名为hello_world的函数定义:

1def hello_world(request):
2    return Response('<h1>Hello world!</h1>')

请记住,大多数 Web 框架都执行 MVC (模型、视图、控制器) 范式. 满足视图要求的函数负责将文本传回请求实体。

在这种情况下,该函数在调用时使用我们之前导入的响应函数,这将返回一个应该给客户端的值。

该程序的主要部分发生在下面,它从一个常见的Python公约开始,用于调用程序的主要可执行部分:

1if __name__ == '__main__':

此行规定,如果该文件是正在运行的文件(这意味着它没有被另一个文件导入并调用),则应执行以下命令。

1config = Configurator()
2    config.add_view(hello_world)
3    app = config.make_wsgi_app()
4    server = make_server('0.0.0.0', 8080, app)
5    server.serve_forever()

这里的第一个行创建了一个名为config的变量,从我们在程序顶部导入的Configurator函数创建的对象中。

下一行称为该对象的add_view方法. 此方法用于定义可以被应用程序使用的视图. 正如您所看到的,我们通过了我们之前定义的hello_world函数。

下一行实际上通过调用 config 对象的 make_wsgi_app 方法来创建 WSGI 应用程序。

然后,该应用程序被传输到我们导入的 make_server 函数,以创建一个可以启动 Web 服务器来服务我们的应用程序的对象。

保存并关闭文件,当你完成。

要启动应用程序,您只需要指向Python:

1python application.py

现在,如果您导航到您在配置中定义的端口(‘8080’),您将看到您在视图函数中插入的文本:

http://your_ip_address:8080

DigitalOcean Pyramid hello world

使用 Scaffolding 创建样本金字塔应用程序


在上面的例子中,我们通过一个文件完成了一切,虽然这是一个很好的方式来展示使用Pyramid创建MVC应用程序的过程是多么紧凑和简单,但它并不总是处理事情的最简单方式。

像大多数流行的框架一样,Pyramid可以使用scaffolding快速创建一个复杂的项目目录结构,我们可以通过一个名为pcreate的工具来使用该框架。

回到金字塔目录,看看我们有哪些支架:

1cd ~/pyramid_sites
2pcreate -l

1Available scaffolds:
2  alchemy:  Pyramid SQLAlchemy project using url dispatch
3  starter:  Pyramid starter project
4  zodb:     Pyramid ZODB project using traversal

第一个选项创建了 SQL 集成项目,第二个选项创建了一个基本的项目,在应用程序实例之间没有持续性,第三个选项可以创建一个以 ZODB 运行的应用程序,如果您正在使用 Python 2.

我们可以通过选择模板和命名项目来创建一个架构的项目:

1pcreate -s starter first_project

这将创建一个名为项目的目录,进入内部查看创建的文件:

1cd first_project
2ls

1CHANGES.txt development.ini first_project MANIFEST.in production.ini README.txt setup.cfg setup.py

这是一个比我们最后一个例子更大的文件集,直接在这个文件夹中的文件主要用于配置,程序本身主要包含在项目名称的子文件夹中。

要查看架构完成了什么,请运行设置脚本来为开发环境配置应用程序。

1python setup.py develop

这将读取使用development.ini文件中可用的参数配置您的应用程序。

之后,我们可以通过键入服务项目:

1pserve development.ini

如果您访问您的 IP 地址,然后是命令行中指定的端口号码(应该是6543),您将看到默认应用程序:

DigitalOcean Pyramid scaffolding site

在终端中按Ctrl-C来停止 Web 服务器。

我们可以在配置文件中启用调试面板,以便我们获取有关我们的应用程序的有价值信息。

编辑development.ini文件:

1nano development.ini

[app:main]部分的底部,添加此行,以允许任何连接的主机查看调试工具栏:

[app:main]
. . .
. . .
pyramid.includes =
    pyramid_debugtoolbar
debugtoolbar.hosts = 0.0.0.0/0

现在,如果您重新启动服务器并重新加载网页,您将看到右侧的调试工具栏:

1pserve development.ini

DigitalOcean Pyramid debug toolbar

在该项目的结构中,您可以配置复杂的 MVC 交互。

结论


希望,到目前为止,你可以看到它有一个简单的结构,建立在Python的惯例上,它足够灵活,可以从极易的网站扩展到需要复杂交互的更完整的设计。

探索Pyramid的文档,以便更好地了解如何实施更大的应用程序. 该框架提供了许多工具,以便将您的应用程序带入开发周期(包括嵌入式测试),并进入生产。

By Justin Ellingwood
Published At
Categories with 技术
comments powered by Disqus