for attr, value in validated_data.items():
setattr(instance, attr, value)
instance.save()
Book.objects.filter(pk=pk).update(**d)
Book.objects.create(**d)
instance, created = Book.objects.get_or_create(slug=slug, defaults=d)
if not created:
for attr, value in d.iteritems():
setattr(instance, attr, value)
instance.save()
目录结构没什么统一的规范。象 ROR 项目基本目录结构都一致,要找什么文件或看什么文件非常方便(约定大于配置)。 而看看那些 Django 项目,大多数是每个项目目录有自己的目录规范。
Django的缺点大包大揽: 对于一些轻量级应用不需要的功能模块Django也包括了,不如Flask轻便。
过度封装: 很多类和方法都封装了,直接使用比较简单,但改动起来就比较困难。
性能劣势: 与C, C++性能上相比,Django性能偏低,当然这是python的锅,其它python框架在流量上来后会有同样问题。
模板问题: django的模板实现了代码和样式完全分离,不允许模板里出现python代码,灵活度对某些程序员来说可能不够。
ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写。
ORM 把数据库映射成对象。
• 数据库的表