Web2py - 教程

  • 简述

    web2py被定义为一个免费的开源 Web 框架,用于敏捷开发,涉及数据库驱动的 Web 应用程序。它是用 Python 编写和编程的。它是一个全栈框架,由开发人员构建功能齐全的 Web 应用程序所需的所有必要组件组成。
    本教程主要面向使用 Python 并需要创建可伸缩、安全和可移植的数据库驱动的基于 Web 的应用程序的软件专业人员。web2py 提供了使用浏览器从任何地方创建、修改、部署和管理应用程序的所有功能。
    在您开始学习本教程之前,我们假设您已经了解 Python 编程的基础知识。对模型-视图-控制器的基本了解也同样重要。如果您不太了解这些概念,那么我们建议您阅读我们关于 Python 的简短教程。
    与传统模式不同, web2py框架遵循运行 Web 应用程序的模型-视图-控制器模式。
    • 模型是包含数据逻辑的应用程序的一部分。模型中的对象用于从数据库中检索和存储数据。
    • 视图是应用程序的一部分,有助于向最终用户呈现数据显示。数据的显示是从模型中获取的。
    • 控制器是应用程序的一部分,它处理用户交互。控制器可以从视图中读取数据、控制用户输入并将输入数据发送到特定模型。
    Web2py 设备
    • web2py具有管理 cookie 和会话的内置功能。提交事务后(就 SQL 而言),会话也会同时存储。
    • web2py具有在某些操作完成后按预定时间间隔运行任务的能力。这可以通过CRON来实现。
  • web2py——工作流程

    看看下面给出的工作流程图。
    工作流程
    工作流程图如下所述。
    • ModelsViewsController组件组成了用户 web2py 应用程序。
    • 多个应用程序可以托管在同一个 web2py 实例中。
    • 浏览器向服务器发送 HTTP 请求,服务器与ModelControllerView交互以获取必要的输出。
    • 箭头表示与数据库引擎的通信。数据库查询可以用原始 SQL 或使用 web2py 数据库抽象层(将在后续章节中讨论)编写,因此web2py应用程序代码独立于任何数据库引擎。
    • Model与数据库建立数据库连接,并与Controller进行交互。另一方面,Controller 与 View 交互以呈现数据显示。
    • Dispatcher将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 映射有助于访问功能和模块。对于上面的示例,控制器包含一个名为 employees 的函数(或“操作”)。
    控制器采取的操作返回一个字符串或一个 Python 字典,它是键和值的组合,包括一组局部变量。

    看法

    “default/contacts.html”视图
    
    {{extend 'layout.html'}}
    <h1>Manage My Employees</h1>
    {{=grid}}
    
    对于给定的示例,View在执行关联的控制器功能后显示输出。
    这个View的目的是渲染字典中的变量,它是HTML的形式。View文件是用 HTML 编写的,但它在{{ 和 }}分隔符的帮助下嵌入了 Python 代码。
    嵌入到 HTML 中的代码由字典中的 Python 代码组成。
  • 从 web2py 开始

    web2py以适用于所有主要操作系统(如 Windows、UNIX 和 Mac OS X)的二进制包形式提供。
    安装 web2py 很容易,因为 -
    • 它包含 Python 解释器,因此您无需预先安装它。还有一个在所有操作系统上运行的源代码版本。
    • 以下链接包含web2py的二进制包,供用户根据需要下载 - www.web2py.com
    • 与其他框架不同,web2py框架不需要预安装。用户需要根据操作系统要求下载 zip 文件并解压缩。
    • web2py框架是用Python编写的,它是一种完全动态的语言,不需要任何编译或复杂的安装即可运行。
    • 它像其他编程语言(如 Java 或 .net)一样使用虚拟机,并且可以透明地对开发人员编写的源代码进行字节编译。
    操作系统 命令
    Unix 和 Linux(源代码分发) python web2py.py
    OS X(二进制分发) 打开 web2py.app
    Windows(二进制 web2py 发行版) web2py.exe
    Windows(源 web2py 发行版) c:/Python27/python.exe web2py.py