跳转到内容

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://127.0.0.1/index.py/index调用时,表单将在 Web 浏览器中打印。在输入字段中输入一个值,然后单击“Ok”:浏览器地址栏中的值将设置为https://127.0.0.1/index.py/show?city=...,并且您将看到输入的数据

这是如何工作的?输入到“city”字段中的值作为参数传递给 show() 函数 - 表单的“action”属性。此函数仅返回此值,因此浏览器将其打印出来

接收 HTML 表单的函数的参数名称必须与 HTML 表单中的名称相同。您也可以使用通常的 Python 语法来表示未指定的参数 

def show(**kw):
	return kw['city']
华夏公益教科书