zoukankan      html  css  js  c++  java
  • python 的 flask 、django 、tornado 、sanic

    flask

     Flask是由python实现的一个web微框架,让我们可以使用Python语言快速实现一个网站或Web服务

    1. Flask 是轻量级的框架,自由,灵活,可扩展性强,核心基于Werkzeug WSGI工具 和jinja2 模板引擎

    2. 适用于做小网站以及web服务的API,开发大型网站无压力,但架构需要自己设计

    3. 与关系型数据库的结合不弱于Django,而与非关系型数据库的结合远远优于Django

    django

     Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django

    1. Django走的大而全的方向,开发效率高。它的MTV框架,自带的ORM,admin后台管理,自带的sqlite数据库和开发测试用的服务器,给开发者提高了超高的开发效率。 重量级web框架,功能齐全,提供一站式解决的思路,能让开发者不用在选择上花费大量时间。

    2. 自带ORM和模板引擎,支持jinja等非官方模板引擎。

    3. 自带ORM使Django和关系型数据库耦合度高,如果要使用非关系型数据库,需要使用第三方库

    4. 自带数据库管理app

    5. 成熟,稳定,开发效率高,相对于FlaskDjango的整体封闭性比较好,适合做企业级网站的开发。python web框架的先驱,第三方库丰富

    tornado

    Tornado就是我们在 FriendFeed 的 Web 服务器及其常用工具的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 FriendFeed 的应用里每一个活动用户都会保持着一个服务器连接。(关于如何扩容 服务器,以处理数以千计的客户端的连接的问题,请参阅The C10K problem)

    1. Flask 是轻量级的框架,自由,灵活,可扩展性强,核心基于Werkzeug WSGI工具 和jinja2 模板引擎

    2. 适用于做小网站以及web服务的API,开发大型网站无压力,但架构需要自己设计

    3. 与关系型数据库的结合不弱于Django,而与非关系型数据库的结合远远优于Django

    4. Tornado 可以承载成千上万的活动连接, 完美的实现了 长连接WebSockets, 和其他对于每一位用户来说需要长连接的程序

    sanic

     Sanic 既是一个Python web 服务器,又是一个web框架,它为速度而生。Sanic只支持Python 3.5及其以上版本,允许我们使用async/await语法来使我们的代码非阻塞且快速

     

    Python中各自的应用场景?

    Django: 主要是用来搞快速开发的,他的亮点就是快速开发,节约成本,,如果要实现高并发的话,就要对django进行二次开发,比如把整个笨重的框架给拆掉自己写socket实现http的通信,底层用纯c,c++写提升效率,ORM框架给干掉,自己编写封装与数据库交互的框架,ORM虽然面向对象来操作数据库,但是它的效率很低,使用外键来联系表与表之间的查询;
     
    Flask: 轻量级,主要是用来写接口的一个框架,实现前后端分离,提考开发效率,Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login),都需要用第三方的扩展来实现。比如可以用Flask-extension加入ORM、文件上传、身份验证等。Flask没有默认使用的数据库,你可以选择MySQL,也可以用NoSQL。
    其WSGI工具箱用Werkzeug(路由模块),模板引擎则使用Jinja2,这两个也是Flask框架的核心。
     
    Tornado: Tornado是一种Web服务器软件的开源版本。Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对epoll的运用,Tornado每秒可以处理数以千计的连接因此Tornado是实时Web服务的一个理想框架

  • 相关阅读:
    AOP面向切面编程
    java中与运算,或运算,异或运算,取反运算
    Java中replace和replaceall的区别
    Satisfying memory ordering requirements between partial reads and non-snoop accesses
    JS判断字符串中是否存在某个字符
    PHP 简介
    PHP 是什么
    mysql substr() 函数
    MySQL 数学函数
    MySQL 字符串截取SUBSTRING()函数
  • 原文地址:https://www.cnblogs.com/Im-Victor/p/15480963.html
Copyright © 2011-2022 走看看