1
因此,我正在将我的一些第一次Python代码在线,我对某些事情有点模糊。当我们将app
分配给web.application(urls, globals())
时,究竟发生了什么?此外,行form = web.input(name="Nobody", greet=None)
指的是我的另一个脚本hello_form
中的两个输入表单,但其用途是什么?我们在下一行看到form.greet
和form.name
,但这些应该是根据用户输入创建的变量(但我们说name = "Nobody"
?)。将Python代码在线 - 与我的app.py脚本混淆
import web
urls = (
'/hello', 'Index'
)
app = web.application(urls, globals())
render = web.template.render('templates/', base="layout")
class Index(object):
def GET(self):
return render.hello_form()
def POST(self):
form = web.input(name="Nobody", greet=None)
greeting = "%s, %s" % (form.greet, form.name)
return render.index(greeting = greeting)
if __name__ == "__main__":
app.run()
感谢您的解释!我不知道我在做什么错,但我试图通过改变它来打破第二行:'form = web.input()',它没有任何区别。同样在我的浏览器中,如果我不在第一个文本框中输入任何内容,它不会提供“Nobody”;它只是空白。 – ZCJ 2012-02-28 08:33:22
@ZCJ这是空白的,因为你的浏览器仍然在为该表单提交一个值(一个空字符串)。您必须完全删除该框才能让浏览器不提交任何值。 – Amber 2012-02-28 08:35:29
那么为什么我会把那些默认值放在那里呢?我把它们放在那里,因为存在名为'form'的web.input()变量。既然他们可以展示的唯一方法是,如果我甚至没有那个盒子,为什么你需要它们作为默认? – ZCJ 2012-02-28 08:52:01