1、耦合
Django: 大而全,但是耦合性高。Auth,Permission,admin基本没用
开发快,Django是一个基于MVC(模型model,视图view,控制器controller)构造的框架,但是在Django中,控制器接受用户输入的部分由框架自行处理。所以在 Django 里是模型(Model)、视图(Views)和模板(Template),称为 MVT模式
Flask: 微框架,很小巧。需要哪些功能,自己装。
需要熟悉MVC模式
高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要看类的内聚性是否高,耦合度是否低。目的是使得模块的可重用性、移植性大大增强。
内聚程度越高,耦合程度就越低。高内聚是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
高内聚就是在类中把方法和属性紧密的联系在一起 比如:写一个功能时尽量多分成好几个方法再用一个方法把这些方法综合起来,对外就提供这一个方法就好了,一个类尽量只形容一类事物,如果2个类有共同的属性和方法就尽量提出来做成父类,就是继承。
低耦合:各个模块各司其职,互相影响度降低。
高内聚:将一些关联功能,封装到函数和类里面。
高内聚:就是如果想实现一个功能,用很多方法模块分开写最后组成完成这个功能。卖家和买家分成两个app,实现一个买卖系统。
低耦合:一个模块写所有的方法实现一个功能,卖家买家在一个app中。
3.1 模型定义
-
模型中不定义数据库的表名:
在django中默认表名为:‘应用app名_模型名小写’
在flask中默认的表名为:‘模型名小写’ -
自增id字段:
在django中默认会创建自增的主键id
在flask中需要自己写自增的主键id:
id = db.Column(db.Integer, primary_key=True, autoincrement=True) -
查询所有数据的结果,all()方法
在django中查询的结果为QuerySet
在Flask中查询结果为List -
查询满足条件的数据的结果,filter(), filter_by()方法
在django中查询的结果为QuerySet,filter方法和flask的filter_by使用方法差不多
在Flask中查询结果为BaseQuery objects
flask 的filter 和filter_by的区别:
User.query.filter_by(id=4).first()
User.query.filter(User.id == 4).first()