之前已经将狗书的网站做好了,现在想自己添加点功能。今天先做了一个Todolist,写的比较简单,效果如图
1建一个todolist的蓝本
init.py怎么写,以及怎么把蓝本注册到程序中,这些书上都有写。
2建模型Model
一个储存事件Event,一个储存类型Category,因为以后要自己添加事件的类型,比如休闲,学习,健身…。
并且在User模型中加上这一句,将User和Event关联起来
我这里在Category模型中定义了一个
静态方法,是想先插入几个类型,一开始没有插入类型,导致会报’NoneType’,所以我就加了这个方法,然后在Manage.py 的deploy命令中直接加进去,就可以运行
python manage.py deploy #一键导入
建完模型之后记得Migrate,更新下数据库
3 建表单form
添加事件的表单
这里注意一下category,这是一个下拉选项,必须在初始化的时候定义choices,效果是这样的
还有一个添加类型的表单和一个编辑事件的表单
其中添加类型的表单,里面的自定义验证函数,今天跌了一下,我一开始写的是
def validate_category(self, field):
结果在view.py那里,调用form.validate_on_submit()死活都没有验证类别名,找了半天原因,才知道,原来是我Category模型中的类别名用的是name,后来改成了
def validate_name(self, field):
完美解决,这个验证函数就是确保你添加的类型不重复
4View
这里定义了一个Todolist界面和一个添加事件函数
添加类型函数和编辑事件函数
删除事件函数和一个完成事件函数
最后就是模块了,这个可以参考Bootstrap
(http://w3schools.bootcss.com/bootstrap/bootstrap_buttons.html),改改就行,比较简单。