2022
我们一起努力

django框架详解(Django 框架)

目录:

  • 1、Django框架的基本介绍和工具准备(一)
  • 2、Django和Flask这两个框架在设计上各方面有什么优缺点
  • 3、用Django开发web后端,真的比SpringBoot要省事吗?

Django框架的基本介绍和工具准备(一)

事项注意点:

注意:

(1)python中的虚拟环境是通过工具将系统上的python环境复制了一部分, 两者是独立的 。

(2) python中的虚拟环境的优点是不会污染系统环境和不同的项目用到的python解释器和环境可以相互隔离,不会相互影响。

Django和Flask这两个框架在设计上各方面有什么优缺点

Django

Django是基于中间件的一个大型框架。框架本身的内容相当丰富,基础部分:模版引擎、ORM、表单、路由分发这些标配,还有不少的中间件:登陆、后台管理,这些还是官方中间件,另外还有不少的第三方中间件。关于第三方的我没有详细研究过,质量不太好评论。还有由ROR带起的基于命令的Web开发方式和扩展、还有内建的数据库迁移,基本上你呢想到的Django都有。可以说Django和Python相当匹配,前者是Web开发的万金油,后者是开发领域的万金油。

另外Django这个框架本身还有一个专门的基金会,这个基金会是由Django的母公司成立的,估计有不少用这个框架的公司也对期捐助过。框架本身相当活跃,每隔大概8个月就有一个大版本。

社区也是相当活跃,官方的Community、非官方(StackOverflow)和IRC(据说IRC是比任何一个开源项目都要活跃)基本上你碰到的问题大家都会有解决或者Workout方案。

Flask

FLASK框架本身只包含路由分发,请求和响应的封装和插件系统,在加上作者自己的Werkzeug(处理WSGI)、jinja2(模板引擎)和Flask-SQLAlchemy扩展(Model层),这几个同一个作者的项目构成一个完整的MVC框架。

对于Flask本身,一个微框架,这已经足够了,而且它也只能提供这么多。

如果你需要表单处理,请安装Flask-WTF;如果你需要基于命令的开发模式,请安装Flask-Script和Flask-CLI(这是一个Flask1.0的backport模块);如果你要登陆验证,请装Flask-Login;如果你要后台管理,请装Flask-Admin。什么?!你全部都要?请装Django。

对Flask就是这么一个框架。这是一个典型的社区项目,作者在实现了一个牛X的核心以后,就撒手交给社区。各个插件的文档分散(虽然Flask曾经出了一本书,试图打通各个插件和Flask关系,但是当需要真正使用的时候,查文档还是需要在不同的Chrome Tab里面切换),而且社区插件的质量、支持和活跃度也需要话很大的力气去确认。

Flask这个项目毫无疑问是优秀的:完善的官方文档,详细的教程()还有一个牛X的作者作为光环加持(这里可以看到作者有不少应用广泛的项目)。但是和Django完全不在一个应用层面,我会在下一段作出比较和说明。而且Flask这个项目基本已经处于沉睡期,最新的版本0.10.1是2013年发布的,项目的代码仓库也是比较低的活跃度(大概是一个月10次左右的Commit和PR),1.0的发布从2014年到2016年一直说要发布,一直没有出来。各个插件更新也是停留在2015年中。和Django比较活跃度确实令人捉急。

Flask和Django的应用场景

鉴于Flask和Django的特点,如果你是开发一个REST API的系统,没有复杂的分层和逻辑的话,Flask会是一个不错的选择,因为框架内建的功能已经足够你完成这个任务;又或者,你是打算实现一个大型的系统,需要自己重新实现大部分插件的内容,Flask也还是不错,因为它足够的简单,能让你快速的读懂和扩展。

其他的情况我还是推荐你用回Django。尤其是当你需要安装大量的Flask插件,去实现Django本来就有的功能时,你就应该意识到你需要放弃Flask。

当然这只是个人的看法,也没有绝对这一说,主要还是看你想在框架上花费多少的时间。

用Django开发web后端,真的比SpringBoot要省事吗?

用Django开发web后端并不比SpringBoot要省事。

spring好处就是当你需要消息队列,或者服务注册发现,配置中心等等的时候配置比较方便,如果不考虑微服务,spring boot也只是比java世界里面其他的方便而已。

而python世界想要集成上述几个功能并且达到一定的生产级别是要比spring麻烦的多。

从性能上讲,看过一些测评,spring因为替用户做了很多类型推断的事情,纯性能在java世界也就是稀烂。

python如果不是一开始就上pypy,那就是一个jit的性能差距,大概就是十倍吧。

最后讨论下针对软件开发。

java它就是消耗代码,完成同样功能谁需要写的代码更多就更耗时,显然go是要少些不少代码。

而我的理解上,python需要1完成的东西go得1.5以上 java到2以上,显然耗费的时间也就是基于这个比例。

对于个人心智负担范围内的项目,我是没什么理由选择java的,因为代码行数就是时间,时间就是金钱。

而对于不写测试设计稀烂的项目,这锅java也背不住。所以吧,如果不是个大项目,感觉并不太需要java出马以及,除非是有些必然要选择的原因。

至于大项目,这事我还没真没啥概念,大致统计了下以前项目的有效代码,不算注释第三方库,现在公司两三年的项目多端前后台加起来也就是20来万行。这也就算是我碰到现在规模最大的了。

剩下的曾经有个创业项目做了三个月差不多前后台也就是三万多行。

最后说结论吧,项目小,周期短,投入少,还是就django吧。

django框架介绍

Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。

另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。

Django 框架的核心组件有:

1、用于创建模型的对象关系映射。

2、为最终用户设计较好的管理界面。

3、URL 设计。

4、设计者友好的模板语言。

5、缓存系统。

Django(发音:[`dʒæŋɡəʊ]) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计。Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。

Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。

由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times评选为2013 SD Times 100,位列“API、库和框架”分类第6位,被认为是该领域的佼佼者。

赞(0)
文章名称:《django框架详解(Django 框架)》
文章链接:https://www.fzvps.com/147190.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!