zoukankan      html  css  js  c++  java
  • 测试开发中Django和Flask框架

    Python测试开发中Django和Flask框架

    为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应用、系统应用)跟建造房子的过程一样,需要先打地基,搭好骨架,然后一块砖一块砖叠上去。

    而开发一个应用呢?

    同样也需要一个好的架构设计,数据库建模,然后一个模块一个模块使用代码实现。

    如果开发一个软件应用不使用框架,和我们建房子时,每一块砖、每一根钢筋都需要自己生产出来本质上是一样的。

    显而易见,如果在建造房子之前,每一块砖头、每一种建材,都需要我们自己去生产的话,建造房子的效率是极低的,甚至可能一辈子也无法把房子建造好。

    在开发应用系统时,使用框架可以带来如下好处:

    1、大大提升开发效率;

    2、让应用开发更加规范、拓展性更强;

    3、让程序员把更多的精力放在业务逻辑的实现上,而不是重复、而复杂的基础环境上(比如web服务器、底层实现等);

    二、为什么使用Django和Flask框架?  

    1、在Python编程语言的世界里,功能最强大、最流行的两个框架。

    2、不仅在web后端开发、微服务开发,同时在ERP系统开发、API接口开发等领域,这两个框架应用非常广泛。

    三、Django和Flask的区别

    ◆ 形象类比

    如果Django类似于精装修的房子,自带豪华家具、非常齐全功能强大的家电,什么都有了,拎包入住即可,十分方便。

    而Flask类似于毛坯房,自己想把房子装修成什么样自己找材料,买家具自己装。

    材料和家具种类非常丰富,并且都是现成免费的,直接拿过去用即可。

    ◆ 在体量上的区别

    Flask:小巧、灵活,让程序员自己决定定制哪些功能,非常适用于小型网站。

    对于普通的工人来说将毛坯房装修为城市综合体还是很麻烦的,使用Flask来开发大型网站也一样,开发的难度较大,代码架构需要自己设计,开发成本取决于开发者的能力和经验。

    Django:大而全,功能极其强大,是Python web框架的先驱,用户多,第三方库极其丰富。

    非常适合企业级网站的开发,但是对于小型的微服务来说,总有“杀鸡焉有宰牛刀”的感觉,体量较大,非常臃肿,定制化程度没有Flask高,也没有Flask那么灵活。

    ◆ 实例

    使用Flask来完成:

    第一步,安装Flask,pip install flask

    第二步,创建my_first_app.py文件,添加如下代码

    完成最简单的Hello World功能,Flask只需要7行代码,非常简单、方便。

    使用Django来完成:

    第一步,安装Django,pip install django

    第二步,创建工程项目目录,django-admin startprojectmyproject

    第三步,创建子应用,python manage.py startappmyapp

    第四步,在myapp应用所在目录中的views.py文件中,添加如下代码。

    第五步,在myapp应用所在目录中创建urls.py路由文件,并添加如下代码

    第六步,在主路由文件中添加路由。

    从上面的操作步骤可知,实现同样的一个功能,往往Flask较为简单,代码较少,而Django所涉及到的流程较多,工程项目结构清晰,在大型项目中具有优势。

    如果你想搞懂Python web开发WSGI协议原理以及实现过程、或者你想灵活定制组件,完全DIY你的应用、想实现微服务。那么建议你选择Flask。

    如果你关注产品的最终交付、想快速开发一个大的应用系统(比如新闻类网站、商城、ERP等)。那么建议你选择Django,你想得到的功能它都有,想不到的功能它也有。

    五、如何才能学好框架

    1、需要先学习框架的基础知识、基本实现原理

    2、结合项目实践,提升编码能力和业务逻辑的理解

    3、翻看框架源码,深入理解源码精髓(进阶)

    Flask:

    1:轻量级web框架,只有一个内核,默认依赖两个外部库:Jinja2 模板引擎和 Werkzeug WSGI 工具集,自由,灵活,可扩展性强,开发者可以根据需求自己造轮子
    2:适用于做小型网站以及web服务的API,开发大型网站无压力,架构需自行设计
    3:与关系型数据库结合不弱于Django,而与非关系型数据库的结合远远优于Django

    Django:

    1:重量级web框架,功能齐全,提供一站式解决的思路,能让开发者不用在选择应用上花费大量时间
    2:自带ORM(Object-Relational Mapping 对象关联映射)和模板引擎,支持JinJa等非官方模板引擎,灵活度不高
    3:自带ORM使Django和关系型数据库耦合度过高,如果要使用非关系型数据库,需要使用第三方库
    4:自带数据库管理app
    5:成熟、稳定、开发效率高、相对于Flask,Django的整体封闭性比较好,适合做企业级网站的开发
    6:python web框架的先驱,第三方库丰富
    7:上手容易,开发文档详细、完善、资料丰富
    ---------------------

    (1)Flask

    Flask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过
    Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库
    入门简单,即便没有多少web开发经验,也能很快做出网站
    非常适用于小型网站
    非常适用于开发web服务的API
    开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验
    各方面性能均等于或优于Django
    Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库
    Flask灵活开发,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一
    Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django
    Flask比Django更加Pythonic,与Python的philosophy更加吻合
    (2)Django

    Django太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不够高
    Django能开发小应用,但总会有“杀鸡焉用牛刀”的感觉
    Django的自带ORM非常优秀,综合评价略高于SQLAlchemy
    Django自带的模板引擎简单好用,但其强大程度和综合评价略低于Jinja
    Django自带ORM也使Django与关系型数据库耦合度过高,如果想使用MongoDB等NoSQL数据,需要选取合适的第三方库,且总感觉Django+SQL才是天生一对的搭配,Django+NoSQL砍掉了Django的半壁江山
    Django目前支持Jinja等非官方模板引擎
    Django自带的数据库管理app好评如潮
    Django非常适合企业级网站的开发:快速、靠谱、稳定
    Django成熟、稳定、完善,但相比于Flask,Django的整体生态相对封闭
    Django是Python web框架的先驱,用户多,第三方库最丰富,最好的Python库,如果不能直接用到Django中,也一定能找到与之对应的移植
    Django上手也比较容易,开发文档详细、完善,相关资料丰富

  • 相关阅读:
    NSObject-拷贝 NSCopy-NSMutablecopy
    NSObject 排序
    iOS UIView上添加mp4视频
    OC语言中BOOL 和 bool 区别
    便利初始化浅析
    可变字符与不可不可变字符串的心得
    博客开通随笔
    OC总结第五讲:多态
    oc总结第四讲:属性
    oc总结第三讲 setter getter 方法 点运算符
  • 原文地址:https://www.cnblogs.com/klb561/p/11298381.html
Copyright © 2011-2022 走看看