Web2py - 简介

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

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

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

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

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

Web2py Appliance

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

  • web2py 具有运行在完成某些操作后的预定时间间隔内的任务.这可以通过 CRON 来实现.

web2py  - 工作流程

看一下下面给出的工作流程图.

Workflow

工作流程图如下所述.

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

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

  • 浏览器将HTTP请求发送到服务器,服务器与模型控制器

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

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

  • Dispatcher 将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映射有助于访问这些功能和模块.对于上面的示例,Controller包含一个名为employees的函数(或"action").

Controller 采取的操作返回一个字符串或Python字典,它是键和值的组合,包括一组本地变量.

查看

"default/contacts.html" 查看.

{{extend 'layout.html'}}
<h1>Manage My Employees</h1>
{{=grid}}

对于给定的示例, View 显示相关控制器功能后的输出执行.

视图的目的是呈现字典中的变量,该变量采用HTML格式. 查看文件是用HTML编写的,但它在 {{和}} 分隔符的帮助下嵌入了Python代码.

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

从web2py开始

web2py 包含在二进制包中所有主要的操作系统,如Windows,UNIX和Mac OS X.

安装web2py很容易,因为 :

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

  • 以下链接包含 web2py 的二进制包根据用户的需要和减号下载;  www.web2py.com

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

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

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

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