寫在前面
之前用過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 %}