前言
最近有项目需要用python,以前看过,但忘记得太快了,遂打算通过玩玩django来熟悉python。大家都说django非常适合快速开发,我做java web,所以很想知道django是实现快速开发的。
我打算实现对url的CRUD,在本文中记录下来容易出问题的地方,以备忘。
正文
在django的MVC中,M代表了Model类,用来定义基础bean和db操作;V则用django自有的template系统来代替,C则由非常自由灵活的ROOT_URLCONF来充当。并且django的哲学是:我为你准备好做web开发所需的所有组件,包括国际化、缓存、ORM、模板、安全等,你不需要其他的了!所以,用django会与ta提供的组件绑在一起,比如要用sqlalchemy来替换django的ORM框架就非常麻烦(这个我没试过)。
什么是Model
在django中,Model代表了Bean,同时也包括与数据库的各种操作。比如查找数据库中所有的Site,直接定义Site类:
class Site(models.Model)
然后调用Site.objects.all()就可以得到所有的Site。其中Site.objects,其实返回的是一个QuerySet对象,这个对象虽然不是list类型,但因其实现了__iter__()方法,所以可以像list一样遍历。
Model中需要定义属性,比如type = models.IntegerField(),表示其有个type属