Flask 和Django的区别与比较

首先:

        Django 是一个重量级的框架,Flask是一个轻量型的框架;

那么Django框架他到底重在哪呢?

对比Flask框架,Django原生提供了众多的功能组件,让开发更简便快速。

  • 提供项目工程管理的自动化脚本工具

  • 数据库ORM支持(对象关系映射,英语:Object Relational Mapping)

  • 模板

  • 表单

  • Admin管理站点

  • 文件管理

  • 认证权限

  • session机制

  • 缓存

Django是用python语言写的开源web开发框架,并遵循MVC设计;

Flask框架轻在哪呢?

        Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。

其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是 Flask 框架的核心;

Flask 和 Django 路由映射的区别:

1.    在Django 中, 路由是浏览器访问服务器时,先访问的项目中的url, 再由项目中的url找到应用中url, 然后找到我们的视图函数; 视图函数然后直接或者间接的继承了Django提供的父类View,配置路由时,使用类视图的as_view()方法来添加;

urlpatterns = [
    # 视图函数:注册
    # url(r'^register/$', views.register, name='register'),
    # 类视图:注册
    url(r'^register/$', views.RegisterView.as_view(), name='register'),
]

通过View函数中 dispath方法来进行判断请求的是GET 还是POST等;

2.    在Flask 中,路由是通过装饰器给每个视图函数提供的, 而且根据请求方式的不同可以一个 url 用于不同的作用;

猜你喜欢

转载自blog.csdn.net/Bin_1022/article/details/81269769