Web2py 介绍
web2py 被定义为一个免费、开源的敏捷开发网络框架,用于构建基于数据库的网络应用;它使用Python编写,并可进行Python编程。它是一个全套框架;它包含了开发者构建一个完全功能的网络应用所需的所有组件。
web2py 框架遵循运行网络应用的 模型-视图-控制器 模式,而不是传统的模式。
- 模型 是应用的一部分,包括处理数据的逻辑。模型中的对象用于从数据库中检索和存储数据。
-
视图 是应用的一部分,用于将数据呈现给最终用户。显示的数据从模型中获取。
-
控制器 是应用的一部分,处理用户交互。控制器可以从视图中读取数据,控制用户输入,并将输入数据发送给特定的模型。
- web2py 具有内置功能来管理Cookies和会话。在提交事务(以SQL术语)后,会话同时也会被存储。
-
web2py 在完成某些操作后,有能力按计划间隔运行任务。这可以通过 CRON 实现。
web2py – 工作流程
请查看下面给出的工作流程图。
下面是工作流程图的描述。
- Models , Views 和 Controller 组件组成了用户web2py应用程序。
-
多个应用程序可以托管在同一个web2py实例中。
-
浏览器向服务器发送HTTP请求,服务器与 Model , Controller 和 View 交互以获取所需的输出。
-
箭头表示与数据库引擎的通信。数据库查询可以使用原始SQL编写,也可以使用web2py数据库抽象层来编写(将在后续章节中讨论),以使 web2py 应用程序代码独立于任何数据库引擎。
-
Model 与数据库建立连接,并与 Controller 进行交互。另一方面, Controller 与 View 进行交互以呈现数据的显示。
-
Dispatcher 将HTTP响应中给定的请求URL映射到控制器中的函数调用。函数的输出可以是字符串或哈希表。
-
数据由 View 呈现。如果用户请求的是HTML页面(默认情况),则数据将呈现为HTML页面。如果用户以XML形式请求相同的页面,web2py会尝试查找能够将字典呈现为XML的视图。
-
web2py支持的协议包括HTML、XML、JSON、RSS、CSV和RTF。
Model-View-Controller(模型-视图-控制器)
web2py的 模型-视图-控制器 表示如下:
Model(模型)
"db.py" is the model:
db = DAL('sqlite://storage.sqlite')
db.define_table(employee, Field('name'), Field(‘phone’))
模型包括应用程序数据的逻辑。根据上图所述,它连接到数据库。考虑到使用了SQLite,并且以 storage.sqlite 文件存储,其中定义了一个名为employee的表。如果表不存在,web2py会帮助创建相应的表。
控制器
程序 “default.py” 是 控制器 。
def employees():
grid = SQLFORM.grid(db.contact, user_signature = False)
return locals()
在 web2py 中,URL映射有助于访问函数和模块。对于上述示例,控制器包含一个名为”employees”的单个函数(或”action”)。
由控制器执行的 action 返回一个字符串或Python字典,其中包含一组键和值,包括一组本地变量。
视图
“default/contacts.html” 是 视图 。
{{extend 'layout.html'}}
<h1>Manage My Employees</h1>
{{=grid}}
对于给定的例子, 视图 在执行相关的控制器函数后显示输出结果。
这个 视图 的目的是以HTML形式呈现字典中的变量。该 视图 文件是用HTML编写的,但是借助 {{ 和 }} 定界符嵌入了Python代码。
嵌入到HTML中的代码由字典中的Python代码组成。
从web2py开始
web2py 提供了适用于所有主要操作系统(如Windows、UNIX和Mac OS X)的二进制包。
安装web2py很容易,因为:
-
它包含了Python解释器,所以您无需预先安装它。还有一个在所有操作系统上运行的源代码版本。
-
以下链接包含了可根据用户需求下载的 web2py 的二进制包 – www.web2py.com
-
web2py 框架不需要预先安装,不像其他框架那样。用户只需根据操作系统的要求下载ZIP文件并解压缩即可。
-
web2py 框架是用Python编写的,它是一门完全动态的语言,无需编译或复杂的安装即可运行。
-
它使用类似于Java或.NET等其他编程语言的虚拟机,并且可以透明地对开发人员编写的源代码进行字节编译。
操作系统 | 命令 |
---|---|
Unix和Linux(源代码发布) | python web2py.py |
OS X(二进制分发) | open web2py.app |
Windows(二进制web2py分发) | web2py.exe |
Windows(源码web2py分发) | c:/Python27/python.exe web2py.py |