百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

一网打尽,汇总常见Python的Web开发框架

sinye56 2024-10-24 16:45 40 浏览 0 评论

在今天,Python里有很多开发框架用来帮助你轻松创建web应用。web开发框架存在的意义就在于可以快速便捷的构建应用,而不用去在意那些没必要的技术细节(协议、报文、数据结构)。

到2020年为止,基于Python创建的的web应用已经非常多了,国外知名的有youtube.com、instagram、reditt、国内有知乎、豆瓣等等。这些网站分别用到了不同的web框架来实现的,我们今天会一一讲到。

1. Django

Django应该是Python最知名、最有代表性的Web框架了。它的名字来自于Django Reinhardt,一位法国作曲家和吉他演奏家。在2000年初有一个报社的两位程序员为了给报社的报纸开发线上应用,开始用 Python编写网站,最后把他们的工作总结出一套开源框架,就是今天的Django了。

当然小编这里有一份Python学习资料,关注,转发,私信小编“01”即可免费领取!


Django遵循了MVC开发模式,并将这个模式命名为MTV(MTV模式是Python中独有的)

  • M Model(数据模型,用于后端数据库模型定义和处理模块)
  • T Templates(模版,用于前端显示信息)
  • V View(视图,用于接收客户端请求、处理Model、渲染返回信息给客户端等)

(1) Django的优点和缺点

优点:

  • 一站式开发解决方案,拧包入住
  • 各种组件集成高度成熟,配置齐全
  • 用户模型、权限认证体系健全
  • ORM数据库管理功能简单方便
  • 自带后台管理功能

缺点:

  • 配置相对复杂
  • 简单应用采用Django有一种杀鸡用牛刀的感觉

(2) Django安装和初始化

Django下载方式有两种:

  • 通过pip直接安装
  • pip install Django==3.0.3
  • 通过源码下载并安装
  • git clone https://github.com/django/django.git

安装之后通过startproject参数创建一个新的django项目 test_django/

django-admin.py startproject test_django 

cd test_django进入项目路径输入启动服务命令即可启动一个最简单的django服务。

python manage.py runserver 

最后访问下默认路径 http://127.0.0.1:8000 看看django项目启动的效果。

启动成功,现在可以编写你的Django代码了。

2. Flask

如果说Django是大而全的方案代表,那么Flask就是小而精的方案代表。

Flask是基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的Web小应用。

Flask这个框架相对比较灵活,核心思想是Flask只完成基本的功能,别的功能都是靠各种第三方插件来完成的,实现了模块高度化定制。

(1) 常用的Flask插件如下:

  • Flask-SQLalchemy:操作数据库;
  • Flask-migrate:管理迁移数据库;
  • Flask-Mail:邮件;
  • Flask-WTF:表单;
  • Flask-script:插入脚本;
  • Flask-Login:认证用户状态;
  • Flask-RESTful:开发REST API的工具;
  • Flask-Bootstrap:集成前端Twitter Bootstrap框架;
  • Flask-Moment:本地化日期和时间;

Flask的两个主要核心应用是Werkzeug和模板引擎Jinja,除此以外,别的都是可以自由组装的,适合有洁癖的程序员。

(2) Flask优缺点

优点:

  • 项目结构和配置简单
  • 组件可以自由拆装
  • 小项目或临时性项目比较适用

缺点:

  • 组件高度自定义带来的就是各种组件之间的兼容性问题严重大型应用不适合,例如蓝图(blueprint)机制跟Django的url配置比起来其实差得很远

(2) Flask安装

我们通过pip直接安装

pip install flask 

在任意位置新建一个py文件,hello.py 。

from flask import FlaskFlaskapp = Flask(__name__)@app.route("/")def hello():    return "Hello World!"if __name__ == "__main__":    app.run() 

输入启动命令:

python hello.py* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 

最后访问默认地址 http://127.0.0.1:5000 打开flask默认启动页面。

3. Tornado

严格意义上来说Tornado不是一个Web框架,而是一个基于Python实现的异步处理框架,只是自带了WSGI处理相关的功能。

tornado和Flask一样,除了基本的Web处理功能和模版之外,其他功能组件都需要自行拼装。

(1) tornado的优缺点

优点:

  • 短小精悍,性能比较好,不依赖Python多进程/多线程
  • 支持异步非阻塞IO处理方式
  • 支持websocket

缺点:

  • 过于精简,只适用于纯接口化服务或者小型网站应用

(2) Tornado安装

同样使用pip进行安装。

pip install tornado 

新建一个hello.py 代码文件。

import tornado.webimport tornado.ioloopclass IndexHandler(tornado.web.RequestHandler):    def get(self):        self.write('hello world')if __name__ == '__main__':    # 创建应用对象    app = tornado.web.Application([(r'/',IndexHandler)])    # 绑定监听端口    app.listen(8888)    # 启动web程序    tornado.ioloop.IOLoop.current().start() 

最后执行 python hello.py启动tornado服务,通过http://127.0.0.1:8888访问初始化页面

以上三种是Python开发中经常使用到的Web框架,还有一些不是那么常用的也一并给大家简单介绍一下。

4. TurboGears

据说豆瓣早期就是基于该框架进行开发的。

TurboGears是在几个著名的Python项目上组装搭建起来的一个框架,由SQLAlchemy,WebOb,Repoze,Genshi组成。

在某种意义上,TurboGears是将多个开源组件粘合在一起。和Django同样采用MVC架构。

TurboGears的优点:

  • 支持聚合
  • 强大的对象关系映射器
  • 事务系统支持多数据库间事务
  • 多数据库支持
  • 以可重用的代码片段为模板
  • 具有很多的灵活性,可以对接非标准组件
  • 支持分片
  • 模板系统使设计师的设计更轻松

5. Bottle

Bottle和Flask一样,也是一个轻量级的Web开发框架。

它不依赖于Python标准库外的任何库。于2009年被创造出来,它仅由包含模板、路由和一个WSGI抽象层的最小工具开始。对于程序员想寻找一个最轻量级的WSGI服务是一个很好的选择,用它可以最快速度的创建一个Web服务。

Bootle优点:

  • 超轻量级
  • 内建模板引擎和对Jinja2,Mako和Cheetah的支持

总结

今天给大家介绍了各种Python的Web开发框架,我个人常用的框架主要包括Django、Flask、Tornado。别的框架涉猎较少,也是因为流行度和易用性的关系。

针对于最常用的三种框架,我给大家一个使用建议:

  • 正式项目、大型项目,确定需要长期开发和维护的项目建议选择Django,一劳永逸,不用考虑太多。
  • 小型项目、临时性的项目,不怕折腾的,可以选择Flask。
  • 小型项目、临时性项目或者一些简单的接口服务,可以选择Tornado,因为Tornado天生支持异步,所以很多需要做异步IO服务的也可以选择Tornado,另外Django3.0之后也开始全面支持异步了,建议大家观望。

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: