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
廣告

© . All rights reserved.