Web2py - 简介

web2py 被定义为一个免费的开源 Web 框架,用于敏捷开发,涉及数据库驱动的 Web 应用程序; 它是用 Python 编写的,并且可以用 Python 编程。 它是一个全栈框架; 它由所有必要的组件组成,开发人员需要构建一个功能齐全的 Web 应用程序。

web2py 框架遵循运行 Web 应用程序的模型-视图-控制器 模式,这与传统模式不同。

  • 模型是包含数据逻辑的应用程序的一部分。 模型中的对象用于从数据库中检索和存储数据。

  • 视图是应用程序的一部分,有助于向最终用户呈现数据显示。 数据的显示是从Model中获取的。

  • 控制器是应用程序的一部分,用于处理用户交互。 控制器可以从视图读取数据、控制用户输入并将输入数据发送到特定模型。

Web2py 设备
  • web2py 有一个内置功能来管理 cookie 和会话。 提交事务(就 SQL 而言)后,会话也会同时存储。

  • web2py 能够在完成某些操作后按计划的时间间隔运行任务。 这可以通过 CRON 来实现。

web2py – 工作流程

看看下面给出的工作流程图。

工作流程

工作流程图如下所述。

  • 模型视图控制器组件构成了用户web2py应用程序。

  • 多个应用程序可以托管在同一个 web2py 实例中。

  • 浏览器向服务器发送 HTTP 请求,服务器与 模型控制器模型 交互以获取必要的输出。

  • 箭头表示与数据库引擎的通信。 数据库查询可以用原始 SQL 或使用 web2py 数据库抽象层(将在后续章节中讨论)编写,以便 web2py 应用程序代码独立于任何数据库引擎。

  • 模型与数据库建立数据库连接,并与控制器交互。 另一方面,控制器视图交互以呈现数据的显示。

  • 调度程序将 HTTP 响应中给定的请求 URL 映射到控制器中的函数调用。 函数的输出可以是字符串或哈希表。

  • 数据由视图呈现。 如果用户请求 HTML 页面(默认),数据将呈现为 HTML 页面。 如果用户请求 XML 中的同一页面,web2py 会尝试查找可以呈现 XML 中的字典的视图。

  • web2py支持的协议包括HTML、XML、JSON、RSS、CSV和RTF。

模型-视图-控制器

web2py的模型-视图-控制器表示如下 −

模型

"db.py" is the model:
db = DAL('sqlite://storage.sqlite')
db.define_table(employee, Field('name'), Field(‘phone’))

模型包括应用程序数据的逻辑。 它连接到数据库,如上图所示。 考虑正在使用 SQLite 并存储在 storage.sqlite 文件中,其中一个表定义为员工。 如果该表不存在,web2py 会通过创建相应的表来提供帮助。

控制器

程序"default.py"控制器

def employees():
   grid = SQLFORM.grid(db.contact, user_signature = False)
   return locals()

web2py中,URL映射有助于访问函数和模块。 对于上面的示例,控制器包含一个名为员工的函数(或"操作")。

控制器采取的操作返回一个字符串或一个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