📅  最后修改于: 2020-10-17 05:15:32             🧑  作者: Mango
web2py被定义为一个免费的开放源代码Web框架,用于涉及数据库驱动的Web应用程序的敏捷开发;它是用Python编写的在Python编程。这是一个全栈框架;它包含所有必要的组件,开发人员需要构建一个功能全面的Web应用程序。
与传统模式不同, web2py框架遵循运行Web应用程序的“模型-视图-控制器”模式。
模型是应用程序的一部分,其中包括数据逻辑。模型中的对象用于从数据库检索和存储数据。
视图是应用程序的一部分,它有助于向最终用户呈现数据显示。数据的显示是从模型中获取的。
控制器是应用程序的一部分,用于处理用户交互。控制器可以从视图中读取数据,控制用户输入,并将输入数据发送到特定模型。
web2py具有内置功能来管理cookie和会话。提交事务后(根据SQL),该会话也同时存储。
web2py具有在完成某些操作后按计划的间隔运行任务的能力。这可以通过CRON来实现。
看一下下面给出的工作流程图。
工作流程图如下所述。
Models , Views和Controller组件组成用户web2py应用程序。
可以在web2py的同一实例中托管多个应用程序。
浏览器将HTTP请求发送到服务器,并且服务器与Model , Controller和View交互以获取必要的输出。
箭头表示与数据库引擎的通信。数据库查询可以用原始SQL编写,也可以使用web2py数据库抽象层(将在以后的章节中进行讨论)编写,以便web2py应用程序代码独立于任何数据库引擎。
模型建立与数据库的数据库连接并与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文件中,并将表定义为employee。如果该表不存在,则web2py可以通过创建相应的表来提供帮助。
程序“ default.py”是Controller 。
def employees():
grid = SQLFORM.grid(db.contact, user_signature = False)
return locals()
在web2py中,URL映射有助于访问功能和模块。对于上面的示例,控制器包含一个称为雇员的单个函数(或“动作”)。
控制器执行的操作将返回字符串或Python字典,该字典或键是包含局部变量集的键和值的组合。
View是“ default / contacts.html” 。
{{extend 'layout.html'}}
Manage My Employees
{{=grid}}
对于给定的示例, View在关联的控制器函数执行后显示输出。
该视图的目的是在字典中呈现HTML形式的变量。 View文件是用HTML编写的,但是它在{{和}}分隔符的帮助下嵌入了Python代码。
嵌入HTML的代码由字典中的Python代码组成。
对于Windows,UNIX和Mac OS X等所有主要操作系统, web2py均采用二进制软件包。
安装web2py很容易,因为-
它包含Python解释器,因此您不需要预安装它。还有在所有操作系统上运行的源代码版本。
以下链接包含web2py二进制软件包,可根据用户需要下载-www.web2py.com
与其他框架不同, web2py框架不需要预安装。用户需要根据操作系统要求下载zip文件并解压缩。
web2py框架是用Python编写的,它是一种完整的动态语言,不需要任何编译或复杂的安装即可运行。
它使用类似于Java或.net等其他编程语言的虚拟机,并且可以透明地字节编译开发人员编写的源代码。
Operating System | Command |
---|---|
Unix and Linux (source distribution) | python web2py.py |
OS X (binary distribution) | open web2py.app |
Windows (binary web2py distribution) | web2py.exe |
Windows (source web2py distribution) | c:/Python27/python.exe web2py.py |