Web2py - 简介



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

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

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

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

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

Web2py Appliance
  • web2py 具有管理 Cookie 和会话的内置功能。提交事务(以 SQL 术语)后,会话也会同时存储。

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

web2py – 工作流程

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

Workflow

下面描述了工作流程图。

  • 模型视图控制器组件构成了用户 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文件中,其中定义了一个名为 employee 的表。如果表不存在,web2py 会通过创建相应的表来提供帮助。

控制器

程序"default.py"控制器

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

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

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