介绍
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服务器。 第二和第三个行导入Configurator
和Response
从Pyramid的功能。
这些功能分别用于配置详细信息和设置应用程序参数以及响应请求。
接下来,我们有一个函数定义叫做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()
这里的第一行创建了一个名为变量config
了由创建的对象的Configurator
,我们在程序的顶部导入函数。
下一行调用add_view
此对象的方法。 此方法用于定义可由应用程序使用的视图。 正如你所看到的,我们通过在hello_world
我们前面定义的函数。 这是该功能实际上并入作为视图的地方。
以下行实际上通过调用创建WSGI应用make_wsgi_app
配置对象的方法。 这使用对象的属性,例如我们添加的视图,来创建应用程序。
那么这个应用程序传递给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集成的项目。 第二个创建一个基本项目,在应用程序实例之间没有持久性。 第三个可以创建一个应用程序来运行ZODB如果你使用Python 2。
我们可以通过选择模板并命名项目来创建一个脚手架项目:
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]
部分,添加此行允许任何连接主机,查看调试工具栏:
[app:main] . . . . . . pyramid.includes = pyramid_debugtoolbar debugtoolbar.hosts = 0.0.0.0/0
保存并关闭文件。 现在,如果您重新启动服务器并重新加载网页,您将在右手边看到一个调试工具栏:
pserve development.ini
在此项目的结构中,您可以配置复杂的MVC交互。
结论
我们刚刚刮过Pyramid可以做的表面。 希望,通过这一点,你可以看到它有一个简单的结构建立在Python的约定,它是足够灵活的,从极简单的网站扩展到更复杂的交互的完整设计。
探索Pyramid的文档,以便更好地了解如何实现更大的应用程序。 该框架提供了许多工具,以便使您的应用程序通过开发周期(包括合并测试),并进入生产环境。