写在前面
之前用过python的另外一个框架,Django。感觉Django比Flask的资料要多。做这个网站的时候,遇到一些棘手的问题,怎么百度也就只能找到翻来覆去的官方文档以及miguelgrinberg的博客。有时候也就关键的几行代码的问题,会花费很久才看到真正有用的东西。
还有就是,不得不说,官方文档太简洁啦!!!
英文:http://flask.pocoo.org/docs/0.10/
中文: http://dormousehole.readthedocs.org/en/latest/index.html
找到的一些资料(虽然还没发现有什么用):
http://simple-is-better.com/news/214
http://segmentfault.com/a/1190000002411388
http://segmentfault.com/q/1010000002625342
开始搭建网站
1. 使用select的表单验证
解决方法:
forms.py
TEST_SUITES=[('CC','CC'),('SMS','SMS'),('MMS','MMS')] caseTestsuite = SelectField('caseTestsuite',choices=TEST_SUITES,validators=[Length(min=0, max=20),DataRequired()])
add_case.html
{{form.caseTestsuite(class="form-control")}}
会看到浏览器显示一个select list,值为”CC","SMS","MMS"。
views.py
testsuite=form.caseTestsuite.data
如果在add_case.html选择"SMS",那么testsuite=“SMS”。
更过关于wtforms的表单验证问题: http://wtforms.readthedocs.org/en/latest/index.html
2. 在html中使用字典
我需要在网页上显示字典的key 和value。可惜miguelgrinberg先生的练习中没有字典循环,网上当然也找不到相关教程。
后来忽然想到关于Flask渲染使用的是JinJa,然后就查询JinJa的官方文档。
官方文档:
解决方法:
add_case.html
{% for key,value in testsuites.iteritems() %}
<input type="checkbox">{{key}}</input>
<input type="checkbox">{{value}}</input>
{% endfor %}