0
我正在關注使用web.py form
模塊的web.py教程。基本上,這個小應用程序創建一個由文本框組成的表單,進行一些驗證以確保它是一個數字,並且它大於10,並確定該數字是奇數還是偶數。我會在問題之前發佈代碼,因爲它會更容易理解。web.py表單驗證格式化
code.py
import web
from web import form
urls = (
'/', 'hello')
number_form = form.Form(
form.Textbox('number',
form.notnull,
form.regexp('^-?\d+$', 'Not a number.'),
form.Validator('Not greater than 10.', lambda x: int(x)>10),
description='Enter a number greater than 10:'
))
app = web.application(urls, globals(), autoreload=True)
render = web.template.render('templates/')
class hello:
def GET(self):
my_form = number_form()
return render.hello(my_form)
def POST(self):
my_form = number_form()
if not my_form.validates():
return render.hello(my_form)
else:
number = my_form['number'].value
if int(number) % 2:
return "Your number %s is odd." % number
else:
return "Your number %s is even." % number
if __name__ == "__main__":
app.run()
hello.html的
$def with (form)
<form name="test" method="POST">
$if not form.valid: <p><b>Sorry, your input was invalid.</b></p>
$:form.render()
<input type="submit" value="Go" />
</form>
現在,我的問題是,當我創建number_form
定義的驗證。如果我行改:
form.regexp('^-?\d+$', 'Not a number.'),
喜歡的東西:
form.regexp('^-?\d+$', 'Not a number.'),
輸出不會改變!如果驗證失敗,它仍然只是說Not a number.
。但是,如果我改變它的東西,如:
form.regexp('^-?\d+$', 'NOT A NUMBER.'),
它顯示NOT A NUMBER.
,所以我知道它是解釋這一行,而且我的變化居然拿了。
我已經嘗試了幾個不同的字符串,它似乎是截斷空間或東西;我已經改變它的一切工作正常,除了添加像空格,換行符,標籤等東西。
什麼給?