美文网首页
PythonWeb框架调研

PythonWeb框架调研

作者: 狐仙大人_ | 来源:发表于2018-10-08 14:40 被阅读0次

        Python语言作为人工智能战场上主要使用的枪外,还被广泛应用在Web开发、游戏开发、人工智能、云计算开发、大数据开发、数据分析、科学运算、爬虫、自动化运维、自动化测试等领域,其实Python在各领域的应用最方便的就是使用框架,可以让程序员以更少的代码实现自定义功能,还可以将更多的精力集中在业务逻辑上,更加的轻松便利!

Web框架介绍

       Web框架:别人已经设定好的一个Web网站模板,通过学习它的规则,进而”填空“或”修改“成你自己需要的样子。
        一般的Web架构是这样的:

image

        其它基于python的web框架,如tornado、flask、webpy都是在这个范围内进行增删裁剪的。例如tornado用的是自己的异步非阻塞“wsgi”,flask则只提供了最精简和基本的框架。Django则是直接使用了WSGI,并实现了大部分功能。

MVC/MTV介绍

        MVC:全名Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

  • 模型(model):定义数据库相关的内容,一般放在models.py文件中。
  • 视图(view):定义HTML等静态网页文件相关,也就是那些html、css、js等前端的东西。
  • 控制器(controller):定义业务逻辑相关,就是你的主要代码。

        MTV: 有些WEB框架觉得MVC的字面意思很别扭,就给它改了一下。view不再是HTML相关,而是主业务逻辑了,相当于控制器。html被放在Templates中,称作模板,于是MVC就变成了MTV。这其实就是一个文字游戏,和MVC本质上是一样的,换了个名字和叫法而已,换汤不换药。

主流框架介绍

1.Django

        Django 应该是最出名的python框架,Google App Engine甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。Django提供的方便,也意味着Django内置的ORM跟框架内的其他模块耦合程度高。utm_source=copyDjango已经内建了模板、表单、路由、认证、基本数据库管理等等。

Django的MTV模型组织

        目录分开,就必须有机制将他们在内里进行耦合。在Django中,urls、orm、static、settings等起着重要的作用。一个典型的业务流程是如下图所示:

image

2.Flask

       Flask是一个轻量级的Web应用框架, 使用Python编写。基于 WerkzeugWSGI工具箱和 Jinja2模板引擎。使用 BSD 授权。
       Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension加入这些功 能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。

3.Web2py

       Web2py是一个用Python语言编写的免费的开源Web框架,旨在敏捷快速的开发Web应用,具有快速、可扩展、安全以及可移植的数据库驱动的应用,遵循LGPLv3开源协议。

       Web2py提供一站式的解决方案,整个开发过程都可以在浏览器上进行,提供了Web版的在线开发,HTML模版编写,静态文件的上传,数据库的编写的功能。其它的还有日志功能,以及一个自动化的admin接口。

4.Tornado

        Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。
        得利于其非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。不过现在与众多的框架比较,Tornado已经被抛在了后面,Django已经超过了它,更不说其他框架了,只能说Tornado使用纯python开发的性能还是不能与其他框架借助于cython开发的性能相比。

5.CherryPy

        CherryPy是一种用于Python的、简单而非常有用的Web框架,其主要作用是以尽可能少的操作将Web服务器与Python代码连接,其功能包括内置的分析功能、灵活的插件系统以及一次运行多个HTTP服务器的功能,可与运行在最新版本的Python、Jython、Android上。

Django和Tornado

特性:

Django

  • 注重高效开发
  • 全自动化的管理后台(只需要使用起ORM,做简单的定义,就能自动生成数据库结构,全功能的管理后台)
  • session功能

Tornado

  • 注重性能优越,速度快
  • 解决高并发
  • 异步非阻塞
  • websockets 长连接
  • 内嵌了HTTP服务器
  • 单线程的异步网络程序,默认启动时根据CPU数量运行多个实例;利用CPU多核的优势。

选择:

  • 要性能, Tornado 首选;要开发速度,Django 和 Flask 都行,区别是 Flask 把许多功能交给第三方库去完成了,因此 Flask 更为灵活。
  • Tornado实现了异步机制,Django没有。
  • Django适合初学者或者小团队,Tornado适合高度定制。

相关文章

  • PythonWeb框架调研

    Python语言作为人工智能战场上主要使用的枪外,还被广泛应用在Web开发、游戏开发、人工智能、云计算开发...

  • Flask

    Flask Introduction PythonWEB框架之Flask Flask Back-end Manag...

  • Django

    PythonWeb框架要点、Django介绍、工程搭建、配置、静态文件与路由 1.Python Web 框架要点 ...

  • PythonWEB框架之Flask

    前言: Django:1个重武器,包含了web开发中常用的功能、组件的框架;(ORM、Session、Form、A...

  • Python Web 框架——Tornado

    pythonWeb框架 Tornado 一、快速开始 1,helloWorld 1, 创建一个处理类继承自 tor...

  • Flask

    Flask是开发pythonweb的一个轻量级框架,适合初学者使用,下面是Flask的安装过程: 1、然后安装vi...

  • Java 常用验证方法(commons-validator,hu

    背景 为了实现接口响应全量字段断言,开发断言表达式框架时,除了调研常用的断言框架之外,也调研了一些验证框架和方法(...

  • 轻量级pythonweb框架之Flask学习(1)

    写在前面 flask是一个轻量级的web框架,他的优点很多,而且还有很多框架是收到flask的影响,所以,学习一下...

  • python web开发 了解基础点

    pythonweb开发 [if !supportLists]1-1[endif]预期目标 技能:学习[Django...

  • 前端框架调研

    目前流行的的前端框架主要有 Vue angular React 下面就这三个框架的特点进行一些分析及对比: ang...

网友评论

      本文标题:PythonWeb框架调研

      本文链接:https://www.haomeiwen.com/subject/szxjaftx.html