我尝试在python3.5中使用CherryPy生成一个简单的web表单(与sqlite3数据库进行比较),它接受一些不同类型数据的输入。如果不勾选复选框,则会产生一个错误,因为(我假设)没有默认的空值;它要么是“on”,要么是不存在的。如何更改窗体,使其自动将空框设置为“无”? 以下是代码(部分):
class startScreen(object):
@cherrypy.expose
def index(self):
return """<form method="post" action="search">
Job Title:<br>
<input type="text" name="title"><br>
Employer name:<br>
<input type="text" name="employer"><br>
Minimum Starting Salary:<br>
<input type="number" name="minsal"><br>
Contract Hours Per Week:<br>
<input type="number" name="hpwMin">
<input type="number" name="hpwMax"><br>
Start Date:<br>
<input type="date" name="startDate"><br>
<!--jobtype drop down menu--!>
Contract Length (months):<br>
<input type="number" name="CLMin">
<input type="number" name="CLMax"><br>
<!--qualifications list--!>
<!--key skills list--!>
Training Offered:<br>
<input type="checkbox" name="training"><br>
Expenses covered:<br>
<input type="checkbox" name="expenses"><br>
Job benefits:<br>
<input type="checkbox" name="benefits"><br>
Number of days annual holiday: <br>
<input type="number" name="holiday"><br>
Opportunities abroad:<br>
<input type="checkbox" name="abroad"><br>
Date posted: <br>
<input type="date" name="datePosted"><br>
<button type="submit">Submit</button>
</form>
"""
@cherrypy.expose #needed for every page
def search(self, title, employer, minsal, hpwMin, hpwMax, startDate, CLMin, CLMax, training, expenses, benefits, holiday, abroad, datePosted):
search.search.searchDBS(title, employer, minsal, hpwMin, hpwMax, startDate, CLMin, CLMax, training, expenses, benefits, holiday, abroad, datePosted)
return "done"
这是取消选中“单选框”时网页上的输出:
^{pr2}$
这是html复选框的常规行为,您可以使用默认参数:
training=None
或使用kwargs并查找键。对于第一个选项,您的expose方法是:
另一个替代方法(从我的角度来看,因为这些参数对于一个方法来说有很多参数,所以您可以使用
^{pr2}$**params
替代方法:相关问题 更多 >
编程相关推荐