zoukankan      html  css  js  c++  java
  • Django&Flask区别

    Flask

    • Flask 本身只有一个内核,几乎所有的功能都需要用第三方的扩展来实现。
    • Flask 没有默认使用的数据库,默认依赖两个外部库:Jinja2 模板引擎和 WSGI 工具箱(采用的时 Werkzeug 路由模块)
    • Flask  自由、灵活,可扩展性强,第三方库的选择面广,开发者可以根据需求结合自己顺手的轮子
    • Flask  非常适用于小型网站,开发web服务的API,各方面性能均等于或优于Django

    Flask常用扩展包:

    • Flask-SQLalchemy:操作数据库;
    • Flask-script:插入脚本;
    • Flask-migrate:管理迁移数据库;
    • Flask-Session:Session存储方式指定;
    • Flask-WTF:表单;
    • Flask-Mail:邮件;
    • Flask-Bable:提供国际化和本地化支持,翻译;
    • Flask-Login:认证用户状态;
    • Flask-OpenID:认证;
    • Flask-RESTful:开发REST API的工具;
    • Flask-Bootstrap:集成前端Twitter Bootstrap框架;
    • Flask-Moment:本地化日期和时间;
    • Flask-Admin:简单而可扩展的管理接口的框架

    Django

    • Django采用MVT设计模式
    • 重量级web框架,功能齐全,除了web框架,自带ORM和模板引擎,提供一站式解决的思路,能让开发者不用在选择应用上花费大量时间
    • 自带ORM使Django和关系型数据库耦合度过高,如果要使用非关系型数据库,需要使用第三方库
    • 成熟、稳定、开发效率高、相对于Flask,Django的整体封闭性比较好,适合做企业级网站的开发
    • 开发文档详细、完善、资料丰富, python web框架的先驱,第三方库丰富

    Django原生提供众多功能组件 :

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

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

    • 模板
    • 表单
    • Admin管理站点
    • 文件管理
    • 认证权限
    • session机制
    • 缓存

    两者区别

      1. 路由映射 : Django通过父类 View 中的 dispath 方法来进行判断本次请求方式具体是 GET 还是 POST 等; 浏览器请求服务器:

             Flask中,路由是通过装饰器给每个视图函数提供的, 而且一个视图函数可以接收多种请求方式,在函数内部可以通过 request.method 得到当前请求方式,进行不同的逻辑处理

      2. Django 使用终端命令创建项目和创建应用,创建应用后自动携带一系列文件(admin & models & tests & views & migrations目录)

      3. 模板对比 : Flask可以将任意数量的参数传递给过滤器,Django使用冒号来分隔过滤器和参数,因此Django模板语言的过滤器只能传递一个参数

      4. Flask 提供多种上下文变量 : 应用上下文(current_app[存储应用程序中的变量],g[临时变量,充当者中间媒介的作用,可利用它传递一些数据])

                     请求上下文(request[http请求的内容],session[会话中的用户信息])

      •   请求上下文:保存了客户端和服务器交互的数据
      •   应用上下文:flask 应用程序运行过程中,保存的一些配置信息,比如程序名、数据库连接、应用信息等
      •     上下文中的对象只能在指定上下文中使用,超出范围不能使用 

      5. Flask 使用蓝图使模块结构化,Django 使用子应用的形式进行拆分

  • 相关阅读:
    jquery学习
    java--MVC引入JUnit单元测试
    BAE引擎发布到外网
    ORACLE1.26 综合:游标和动态SQL
    ORACLE1.25 动态SQL
    ORACLE1.24 银行系统操作和游标
    ORACLE1.23 loop,whild.for循环
    ORACLE1.23 if case when
    ORACLE1.22 %type %rowtype
    ORACLE1.21 PLSQL 01
  • 原文地址:https://www.cnblogs.com/hsmwlyl/p/10574176.html
Copyright © 2011-2022 走看看