脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python常用Web框架Django、Flask与Tornado介绍

Python常用Web框架Django、Flask与Tornado介绍

2023-02-23 11:44springsnow Python

这篇文章介绍了Python常用Web框架Django、Flask与Tornado,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

web框架是什么?

web开发框架是一组工具,同时也提供了非常多的资源,供软件开发人员构建和管理网站、提供web服务、编写web应用程序。它是一个抽象工具,能使开发应用程序和重复使用代码的过程变得更容易。

为什么需要web开发框架?

进行自定义软件开发时,web开发框架让整个过程变得更容易,因而开发速度更快、更高效。许多开发框架都很便宜,这也使得整个客户机的成本更小。

一个被广泛使用的框架安全性更高。这主要依赖于该框架背后的社区,在这里,用户成为长期的测试人员,并可以提供修复。

如果发现了安全漏洞,可以访问框架的网站,告知特定的团队,这样他们就可以修复它。

Python  web  目前较火的三大框架:Django、Flask 与 Tornado

1、Django

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。

Django是一个高级的Python Web框架,以快速开发和实用简洁的设计闻名。它由经验丰富的开发人员构建,解决了Web开发的麻烦,因此用户可以专注于编写应用程序,而不需要担心返工。并且它是开源和免费的。

Python 界最全能的 web 开发框架,battery-include 各种功能完备,可维护性和开发速度一级棒。常有人说 Django 慢,其实主要慢在 Django ORM 与数据库的交互上,所以是否选用 Django,取决于项目对数据库交互的要求以及各种优化。而对于 Django 的同步特性导致吞吐量小的问题,其实可以通过 Celery 等解决,倒不是一个根本问题。

特点:

  • 安全系数高,能帮助开发者规避常见错误。
  • 速度特别快,因为它的设计目的是使应用程序非常快地从概念阶段过渡到最终阶段。
  • 扩展性好。
  • 从21世纪初Django成为开源框架到现在,它一直是最佳的归档方式。

Django 的项目代表:

Instagram,Guardian。

2、Flask

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。

Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

Flask 虽然是微框架,但是也可以做成规模化的 Flask。加上 Flask 可以自由选择自己的数据库交互组件(通常是 Flask-SQLAlchemy),而且加上 celery +redis 等异步特性以后,Flask 的性能相对 Tornado 也不逞多让,也许Flask 的灵活性可能是某些团队更需要的。

特点:

  • 包含开发调试器和服务器
  • 有丰富的文档
  • 支持安全cookie
  • 基于unicode
  • 单元测试集成支持

3、Tornado

Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。

  得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。

  天生异步,性能强悍是 Tornado 的名片,然而 Tornado 相比 Django 是较为原始的框架,诸多内容需要自己去处理。当然,随着项目越来越大,框架能够提供的功能占比越来越小,更多的内容需要团队自己去实现,而大项目往往需要性能的保证,这时候 Tornado 就是比较好的选择。

Tornado项目代表:

知乎

总结:

  • Django适合:开发速度快,初学者或者小团队的快速开发,适合做管理后台类、博客类网站、或者功能十分复杂需求十分多的网站。Django 和 Flask 都行,区别是 Flask 把许多功能交给第三方库去完成了,因此 Flask 更为灵活。
  • Tornado适合:性能好,高度定制,适合访问量大,异步情况多的网站

到此这篇关于Python常用Web框架Django、Flask与Tornado的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/springsnow/p/12163456.html

延伸 · 阅读

精彩推荐
  • Pythonkeras 指定程序在某块卡上训练实例

    keras 指定程序在某块卡上训练实例

    这篇文章主要介绍了keras 指定程序在某块卡上训练实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    BYR_jiandong4532020-06-22
  • Pythonpython读取文件名及后缀详解

    python读取文件名及后缀详解

    下面小编就为大家分享一篇关于python读取文件名及后缀的文章,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    番茄土豆牛肉煲7922022-02-18
  • PythonDjango --Xadmin 判断登录者身份实例

    Django --Xadmin 判断登录者身份实例

    这篇文章主要介绍了Django --Xadmin 判断登录者身份实例,具有很好的参考价值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    飞翔豆皮6192020-07-04
  • Pythonpython 实现在tkinter中动态显示label图片的方法

    python 实现在tkinter中动态显示label图片的方法

    今天小编就为大家分享一篇python 实现在tkinter中动态显示label图片的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Cat710210432021-07-11
  • PythonPython爬取酷狗MP3音频的步骤

    Python爬取酷狗MP3音频的步骤

    这篇文章主要介绍了Python爬取酷狗MP3音频的步骤,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...

    Revenant-7012021-09-10
  • Python利用Python函数实现一个万历表完整示例

    利用Python函数实现一个万历表完整示例

    这篇文章主要给大家介绍了关于如何利用Python函数实现一个万历表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考...

    做个不一样的小丑6442021-08-28
  • PythonPython字符和字符值(ASCII或Unicode码值)转换方法

    Python字符和字符值(ASCII或Unicode码值)转换方法

    这篇文章主要介绍了Python字符和字符值(ASCII或Unicode码值)转换方法,即把字符串在ASCII值或者Unicode值之间相与转换的方法,需要的朋友可以参考下 ...

    Python教程网11532020-07-04
  • PythonPython调用jar包方法实现过程解析

    Python调用jar包方法实现过程解析

    这篇文章主要介绍了Python调用jar包方法实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以...

    天外归云12652020-08-11