web2py框架是什么

Fanly 2019-07-09 14:22:34
问答

Web2py是一个用Python编程语言编写的开源Web应用程序框架,允许Web开发人员使用Python对动态Web内容进行编程。 Web2py旨在帮助减少繁琐的Web开发任务。

Web2py 是一个用 Python 编程语言编写的开源 Web 应用程序框架。 Web2py 允许 Web 开发人员使用 Python 对动态 Web 内容进行编程。 Web2py 旨在帮助减少繁琐的 Web 开发任务,例如从头开始开发 Web 表单,尽管 Web 开发人员可以根据需要从头开始构建表单。

web2py

Web2py 最初设计为一种教学工具,重点在于易用性和部署。因此,它没有任何项目级配置文件。web2py 的设计灵感来自 Ruby on Rails 和 Django 框架。与这些框架一样,web2py 专注于快速开发,支持约定优于配置方法,并遵循模型 - 视图 - 控制器(MVC)架构模式。

概述

Web2py 是一个全栈框架,它具有适用于所有主要功能的内置组件,包括:

  • HTTP 请求,HTTP 响应,cookie,会话;
  • 多种协议 HTML / XML,REST,ATOM 和 RSS,RTF 和 CSV,JSON,JSON-RPC 和 XML-RPC,AMF-RPC(Flash / Flex)和 SOAP ;
  • CRUD API ;
  • 多种认证机制和基于角色的访问控制;
  • 数据库抽象层(DAL),动态生成 SQL 并在多个兼容的数据库后端上运行;
  • RAM,磁盘,以及 memcached 的基于缓存的可扩展性;
  • 国际化支持;
  • 用于 Ajax 和 UI 效果的 jQuery;
  • 使用上下文自动记录错误。

Web2py 使用 WSGI 协议,这是面向 Python 的协议,用于 Web 服务器和 Web 应用程序之间的通信。它还为 CGI 和 FastCGI 协议提供处理程序,它包括多线程,启用 SSL 的 Rocket wsgiserver。

基于 Web 的集成开发环境(IDE)

所有开发,调试,测试,维护和远程数据库管理都可以(可选)在没有第三方工具的情况下通过 Web 界面执行,本身就是 web2py 应用程序。还可以从此 IDE 执行国际化(添加语言和编写翻译)。每个应用程序都有一个自动生成的数据库管理界面,类似于 Django。Web IDE 还包括基于 Web 的测试。

字节码分发

Web2py 可以编译 Web 应用程序,以字节码编译形式分发,无需源代码。与为视图使用专用模板语言的框架不同,Web2py 还可以将视图代码编译为字节码,因为它是纯 Python 代码。

总结

Web2py 在 Python Web 框架领域是独一无二的,因为模型和控制器是执行的,而不是导入的。它们不是模块。它们在单个全局环境中执行,该环境在每个 http 请求中初始化。这个设计决定有利有弊。

主要优点是易于开发,特别适用于快速原型设计。另一个专家是,在这个环境中定义的所有对象都在每个 http 请求中被彻底重置,并且永远不会在请求之间共享。这意味着开发人员无需担心更改对象的状态(例如,数据库字段的可读属性)或担心泄漏到其他并发请求或其他应用程序的更改。第三个优点是 web2py 允许同一实例下的多个应用程序共存而不会发生冲突,即使它们使用相同模块的不同版本或具有相同名称的不同模块。

全局环境的主要缺点是模型文件和控制器文件不是模块,执行顺序很重要(尽管可以使用条件模型指定)。与普通 Python 模块相比,更有可能发生命名冲突。某些标准 Python 开发工具可能无法理解模型和控制器中定义的对象。此外,开发人员必须意识到模型中的代码是在每次请求时执行的,这可能会导致性能下降。web2py 中的任何内容都不会阻止开发人员使用和导入普通的 Python 模块(无模型方法),为此,web2py 提供了一个线程本地对象(当前),以便于访问与当前请求关联的对象。然而,在这种情况下,开发人员必须意识到其他框架带来的相同陷阱:

另一个问题是,因为模型和控制器不是基于类的,所以有效的代码重用变得更加困难,特别是因为无法从父控制器继承(例如 Ruby on Rails 中的 ApplicationController)意味着必须重复引用通用控制器功能跨所有控制器文件。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐