Web2py - 简介


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

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

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

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

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

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

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

web2py – 工作流程

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

工作流程

工作流程图如下所述。

  • Models 、ViewsController组件组成了用户 web2py 应用程序

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

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

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

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

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

  • 数据由View呈现。如果用户请求 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}}

对于给定的示例,视图在执行关联的控制器函数后显示输出。

这个View的目的是渲染字典中的变量,字典是HTML形式的。View文件是用 HTML 编写的,但它{{ 和 }}分隔符的帮助下嵌入了 Python 代码。

嵌入到 HTML 中的代码由字典中的 Python 代码组成。

从 web2py 开始

web2py提供适用于所有主要操作系统(如 Windows、UNIX 和 Mac OS X)的二进制包。

安装 web2py 很容易,因为 -

  • 它包含 Python 解释器,因此您无需预先安装它。还有一个可在所有操作系统上运行的源代码版本。

  • 以下链接包含web2py的二进制包,可根据用户的需要下载 - www.web2py.com

  • 与其他框架不同, web2py框架不需要预先安装。用户需要下载zip文件并根据操作系统要求解压。

  • web2py框架是用Python编写的,Python是一种完整的动态语言不需要任何编译或复杂的安装即可运行。

  • 它与其他编程语言(例如 Java 或 .net)一样使用虚拟机,并且可以透明地对开发人员编写的源代码进行字节编译。

操作系统 命令
Unix 和 Linux(源代码发行版) 蟒蛇 web2py.py
OS X(二进制发行版) 打开 web2py.app
Windows(二进制 web2py 发行版) web2py.exe
Windows(源 web2py 发行版) c:/Python27/python.exe web2py.py