x.py文件:
from bottle import request, template,route,run,post
@route('/')
def index():
return template('val.html')
@post('/result')
def result():
result=request.forms
print(result) #Unable to print
return template("result",result = result)
if __name__ == '__main__':
run(host='localhost',port=8080,debug='True',reloader='True')
val.html文件:
<!DOCTYPE html>
<html>
<body>
<form action="http://localhost:8080/result" method = "POST">
Select a time:
<input type="time" name="usr_time">
<br> <br>
<input type="checkbox" name="A" value="A is on" >A </input>
<br>
<input type="checkbox" name="B" value="B is on" >B </input>
<br>
<input type="checkbox" name="C" value="C is on" >C </input>
<br><br>
<input type="submit"> </input>
</form>
</body>
</html>
result.html文件:
<!doctype html>
<html>
<body>
<table border = 1>
{% for key, value in result.items() %}
<tr>
<th> {{ key }} </th>
<td> {{ value }} </td>
</tr>
{% endfor %}
</table>
</body>
</html>
html文件放置在views文件夹中。
1)我试图显示用户单击的按钮,但出现错误-“ NameError:名称'key'未定义无法显示”。
2)另外,我无法打印结果。如果我先使用result= request.form
,然后再使用print(result)
,则在烧瓶上工作正常。这会在烧瓶上打印字典。但是使用瓶子不起作用。当我使用type(result)
时,它表示= <class 'bottle.FormsDict'>
。请帮忙。
答案 0 :(得分:2)
根据https://bottlepy.org/docs/0.11/stpl.html,“仅当%字符是行中的第一个非空白字符时,它才能被识别。”
因此,应将其编写如下,以保持python模式:
% for key, value in result.items()
...
% end