Python中如何选择Web开发框架?

article/2025/10/24 5:01:40

Python开发中Web框架可谓是百花齐放,各式各样的web框架层出不穷,那么对于需要进行Python开发的我们来说,如何选择web框架也就变成了一门学问了。本篇文章主要是介绍目前一些比较有特点受欢迎的Web框架,我们可以根据各个Web框架的特性进行选择应用。

Django

Django是市面上比较大而全的一个系列Web开发框架。Django官网上的介绍是:Django 可以更轻松地以更少的代码更快地构建更好的 Web 应用程序。它提供了一站式的web应用框架解决方案。如实现了缓存、ORM、权限验证、管理后台、插件扩展等多项功能。发展到现在,我更愿意认为Django是一个功能强大的Python CMS系统。

我们可以通过一个django项目来简单了解下Django项目:

$ pip install django
$ django-admin startproject djdemo                                                   cd djdemo                                                                                                                               
$ django-admin startapp djapp                                                   
$ tree -L 3             
.
├── djapp
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── djdemo
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-37.pyc
│   │   └── settings.cpython-37.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py
复制代码

Flask

Flask是一个轻量级的Web应用框架,它本身不包含任何模块,却又支持扩展所有需要的内容,秉承着需要多少用多少的理念,是一个不可多得的Python Web框架。而且Flask的开发生态也是欣欣向荣,各种组件均可在社区找到对应的实现工具包。

当我们创建一个Flask框架应用后,我们可以通过下面的代码来启动一个简单的flask程序:

from flask import Flask        # 导入Flask类app = Flask(__name__)          # 实例化Flask类@app.route('/func')            # 编写视图函数及配置路由
def func():return '这是Flask框架'if __name__ == '__main__':     # 启动服务app.run()
复制代码

Pyramid

Pyramid 是一个小巧、快速、实用的开源 Python Web 框架。它使现实世界的 Web 应用程序开发和部署更有趣、更可预测且更高效。它是 Pylons Project 的一部分。采用的授权协议是 BSD-like licensePyramid在国内的知名度并不高,其框架代码量和flask差不多,但是性能却比Flask高很多。

示例代码:

from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Responsedef hello_world(request):return Response('Hello World!')if __name__ == '__main__':with Configurator() as config:config.add_route('hello', '/')config.add_view(hello_world, route_name='hello')app = config.make_wsgi_app()server = make_server('0.0.0.0', 6543, app)server.serve_forever()
复制代码

Bottle

Bottle 是一个用于 Python 的快速、简单和轻量级的 WSGI 微型网络框架。它的特点是单文件,代码只使用了Python标准库,而不需要额外依赖其他第三方库。可以说Bottle完美的发挥了“极简主义”风格,好处是显著的,它让我们的项目尽可能的小,但是弊端也是毋庸置疑的,过少的功能支持导致稍微大点的系统就需要自己去开发添加功能。

示例代码参考:

from bottle import route, request, run@route('/hello', method=['GET', 'POST'])
def dh():     return 'hello ' + request.query.strif __name__ == "__main__":run(host='0.0.0.0', port=8080)
复制代码

Tornado

Tornado最初是由FriendFeed开发的非阻塞式Web服务器。由于是非阻塞式服务器,所以它的访问加载速度比较快,Tornado可以支持每秒数千计的连接。对于长轮询、WebSocket等实时性web服务来说,Tornado是一个理想的Web框架。

示例代码:

import asyncioimport tornado.webclass MainHandler(tornado.web.RequestHandler):def get(self):self.write("Hello, world")def make_app():return tornado.web.Application([(r"/", MainHandler),])async def main():app = make_app()app.listen(8888)await asyncio.Event().wait()if __name__ == "__main__":asyncio.run(main())
复制代码

Web.py

Web.py是由Reddit联合创始人、RSS规格合作创作人、著名黑客Aaron Swartz开发。Web.py使用基于类的视图,可以轻松创建动态网站和强大的互联网应用程序。它提供 SQL/JDBC 作为其数据库接口,包括对 Google App Engine 的支持,以及为初学者和专家设计的文档齐全、正确且清晰的界面。

**web2py**被定义为一个用于敏捷开发的免费开源Web框架,涉及数据库驱动的Web应用程序。它是用Python编写和编程的。它是一个完整的堆栈框架,由开发人员创建功能齐全的Web应用程序所需的所有必要组件组成。

Quixote

Quixote 是一个使用 Python 编写基于 Web 的应用程序的框架。它的目标是按此顺序实现灵活性和高性能。Quixote 应用程序的结构往往类似于传统应用程序。格式化网页的逻辑由 Python 类和函数组成。Quixote 不强制分离表示逻辑和 “后端” 逻辑。相反,我们鼓励您使用传统技术。例如,一种解决方案是将表示逻辑放在其自己的子包中。

Quixote使用的是目录式的URL分发规则,使用python来编写模板。PTL模板更适合程序员,但并不适合美工参与前端代码的编写和修改,且Quixote的更新频率较低、社区活跃度不够,所以并不建议在生产环境选用Quixote作为web开发框架。

Sanic

Sanic 是一个 Python 3.6+ web 服务器和web框架,它的编写速度很快,号称 Python 中性能最高的异步 Web 框架。它允许使用python 3.5中添加的 async/await 语法,这使得您的代码不阻塞,速度更快。Sanic参考了Flask的设计思想,这使得习惯于使用Flask开发的程序员能更快的适应Sanic的开发。

代码示例:

from sanic import Sanic
from sanic.response import jsonapp = Sanic("hello_example")@app.route("/")
async def test(request):return json({"hello": "world"})if __name__ == "__main__":app.run(host="0.0.0.0", port=8000)

http://chatgpt.dhexx.cn/article/44DauaNZ.shtml

相关文章

移动web开发框架研究

纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile 、Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家族,Sencha Touch来自于ExtJS。jQuery Mobile 和Sencha Touch都是比较成熟老牌…

【Web开发】框架篇

前后端分离 为了适应技术和业务发展的需求,采用前后端分离的技术,前端应用和后端应用以JSON格式进行数据交互,采用的解决方案Spring Boot Vue。 单体——> 前端应用 后端应用 前端应用:负责数据展示和用户交互 后端应用&…

Python Web开发框架

一、WEB应用服务的认知 WEB应用服务基于HTTP协议/规范,实现静态资源和动态资源的请求与处理。 静态资源包括:html网页、图片、样式、javascript脚本、视频、音频等等。动态资源包括:通过程序(java/php/python/.net)和…

Web前端开发框架推荐

原本写这篇文章想围绕着 CSS 框架来的,但因为目前界内比较流行并遍地开花的主要还是 JSCSS 模式的框架,并且自己靠着一点 JS 功底,就想专门针对 CSS,所以最后来个大锅乱炖都大致聊聊。下面的框架也没有什么先后顺序之分&#xff0…

Java开源Web框架

URL:http://www.open-open.com/07.htm WebWork 点击次数:18070 WebWork 是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的…

37 个 Python Web 开发框架总结

1. Django 框架 官 网: https://github.com/django/django.git 优 点:是一个高层次 Python Web 开发框架,特点是开发快速、代码较少、可扩展性强。Django 采用 MTV(Model、Template、View)模型组织资源,框…

web框架

目录 1 左右分割窗口 2 上下分割窗口 3 嵌套分割窗口 4 内联框架 框架的作用是把浏览器窗口划分成若干个小窗口&#xff0c;每个小窗口可以分别显示不同的网页。 框架的基本结构主要分为框架集和框架两个部分&#xff0c;在网页中分别用<frameset>和<frame>标记…

热门开源Web开发框架推荐

程序员圈有这么一句话&#xff1a;“不要重复造轮子” &#xff0c;这句话也带来许多争议。 要不要重复造轮子&#xff1f; 有的人认为这是一种“拿来主义”的傲慢体现&#xff0c;因为你不造自己的轮子&#xff0c;就会缺乏核心技术&#xff0c;由此将一直受限&#xff0c;创…

Web框架介绍

&#x1f41a; 作者: 阿伟 &#x1f482; 个人主页: Flyme awei &#x1f40b; 希望大家多多支持&#x1f618;一起进步呀&#xff01; &#x1f4ac; 文章对你有帮助&#x1f449;关注✨点赞&#x1f44d;收藏&#x1f4c2; Web框架 文章目录 Web框架介绍1.web服务器ApacheNg…

常用的Web架构开发语言有哪几种?

如果你是做Web开发的&#xff0c;Web框架一定会很熟悉&#xff0c;框架是Web架构开发中必不可少的工具&#xff0c;不仅可以提高开发效率&#xff0c;还能让开发项目更成熟&#xff0c;并且可以提升代码的可再用性&#xff0c;Web框架开发离不开相应的开发语言&#xff0c;以下…

【最全整理】37 个 Python Web 开发框架总结

用了 2 周的时间整理了 Python 中所有的网站开发库&#xff08;下文简称&#xff1a;Web 框架&#xff09;&#xff0c;供大家学习参考。 Q&#xff1a;Web 框架到底是什么&#xff1f; A&#xff1a;Web 框架主要用于网站开发。开发者在基于 Web 框架实现自己的业务逻辑。Web…

10款Web开发最佳的Python框架

Python是跻身于当代IT世界最流行和代码最高效的编程语言之一。Python框架能帮助你快速启动Web应用。 1.CubicWeb CubicWeb的最重要的功能是其代码的可重用性&#xff0c;由一个个代码单元组成。它灵活又强大&#xff0c;并且还有一些特别的功能&#xff0c;包括RQL查询语言和支…

24点游戏的递归解法和Python实现

24点游戏的递归解法和Python实现 目录 24点游戏的递归解法和Python实现什么是24点游戏递归思路递归24点问题的递归思路Python代码实现四则运算下无解的组合总结什么是24点游戏 还记得小时候拿一副牌玩得24点游戏吗? 拿一副牌,抽去大小王后(J,Q,K记为11,12,13;用1代替A),剩…

Python实现24点游戏

问题描述 24点游戏是经典的纸牌益智游戏。 常见游戏规则&#xff1a; 从扑克中每次取出4张牌。使用加减乘除&#xff0c;第一个能得出24者为赢。&#xff08;其中&#xff0c;J代表11&#xff0c;Q代表12&#xff0c;K代表13&#xff0c;A代表1&#xff09;&#xff0c;按照要…

用python算24点及原理详解

1 描述 给出4个正整数&#xff0c;使用加、减、乘、除4种运算以及括号把4个数连接起来得到一个结果等于24的表达式。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬…

24点卡牌游戏C++实现

问题描述&#xff1a; 24点游戏是经典的纸牌益智游戏。 常见游戏规则&#xff1a; 从扑克中每次取出4张牌。使用加减乘除&#xff0c;第一个能得出24者为赢。&#xff08;其中&#xff0c;J代表11&#xff0c;Q代表12&#xff0c;K代表13&#xff0c;A代表1&#xff09;&#x…

Python 小程序:计算24点

今天玩24点的时候&#xff0c;突然希望想编写一个 计算24点的小程序&#xff0c;为python的初学者提供一些帮助。 24点是许多人都会玩的游戏。玩法在这里简单的介绍一下&#xff1a;选4个数字&#xff08;1-13中任意&#xff09;&#xff0c;然后用加减乘除算出24。计算时&…

24点答案生成器

故事背景&#xff1a;晚上拿起扑克牌&#xff0c;奈何没有牌友&#xff0c;百度了一下有什么单人扑克游戏&#xff0c;然后就发现了24点&#xff0c;随意挑出4张牌&#xff0c;只用加减乘除组合成24点&#xff0c;我抽出了7 7 8 Q(12) &#xff0c;然后思索了半天没有答案&…

蓝桥杯 试题 算法训练 24点 C++ 详解

问题描述&#xff1a; 24点游戏是一个非常有意思的游戏&#xff0c;很流行&#xff0c;玩法很简单&#xff1a;给你4张牌&#xff0c;每张牌上有数字&#xff08;其中A代表1&#xff0c;J代表11&#xff0c;Q代表12&#xff0c;K代表13&#xff09;&#xff0c;你可以利用数学中…

24点游戏(python)

24点游戏&#xff08;python&#xff09; 一、题目要求 1.问题描述&#xff1a; 24点游戏是经典的纸牌益智游戏。常见游戏规则&#xff1a; 从扑克中每次取出4张牌。使用加减乘除&#xff0c;第一个能得出24者为赢。&#xff08;其中&#xff0c;J代表11&#xff0c;Q代表12&a…