Karrigell/在一個指令碼中編寫互動式應用程式
外觀
像這樣編輯同一個指令碼 index.py
def index():
form = FORM(action="show")
form <= INPUT(name="city")
form <= INPUT(Type="submit",value="Ok")
return HTML(BODY(form))
def show(city):
return city
此指令碼定義了兩個函式,index() 和 show()。在 index() 中,我們構建一個 HTML 表單,在 show() 中,我們處理表單中輸入的資料
在 index() 函式中,我們首先使用類 FORM 建立一個 HTML 表單,並將引數“action”設定為“show”,即處理使用者輸入資料的函式的名稱
然後,我們使用 INPUT 例項構建此表單。為此,我們使用運算子 <=(將其視為左箭頭,表示“新增子級”)將一個“子級”新增到 FORM 例項中:首先是一個名為“city”的輸入標籤,然後是一個值為“Ok”的提交標籤。請注意,屬性“type”使用大寫字母開頭的 Type 來編寫,以避免與 Python 名稱“type”混淆
當指令碼透過https:///index.py/index呼叫時,表單將在 Web 瀏覽器中列印。在輸入欄位中輸入一個值,然後單擊“Ok”:瀏覽器位址列中的值將設定為https:///index.py/show?city=...,並且您將看到輸入的資料
這是如何工作的?輸入到“city”欄位中的值作為引數傳遞給 show() 函式 - 表單的“action”屬性。此函式僅返回此值,因此瀏覽器將其打印出來
接收 HTML 表單的函式的引數名稱必須與 HTML 表單中的名稱相同。您也可以使用通常的 Python 語法來表示未指定的引數
def show(**kw):
return kw['city']