2025年了,在 Django 之外,Python Web 框架还能怎么选?

news/2025/9/17 23:26:22/文章来源:https://www.cnblogs.com/deali/p/19097878

前言

大家好,我是曦远~

前段时间我写过一篇文章 《Django过时了吗?从ASGI到AI时代的思考》,聊到在 AI 时代下,传统全家桶式框架(比如 Django)该如何面对新趋势。

最近在翻新 DjangoStarter 项目的时候,我顺便做了一些调研,发现 Python Web 生态的变化比我想象得还要快。

一方面,老牌选手 Django 也有了像 Ninja 这样的新鲜外挂;另一方面,如果不走 Django 全家桶路线,还有一批正在崛起的轻量级框架和工具,把 Python Web 推向了一个新的阶段:轻量化 + 异步优先 + Rust 加持

所以这篇文章,我就来聊聊 2025 年值得关注的几个新选择:LiteStar、Tortoise ORM、Granian 和 Robyn

LiteStar

LiteStar 是一个基于 ASGI 的新兴框架,定位有点像 FastAPI 的进化版。

  • 优点:类型提示完整、依赖注入自然、性能不错。
  • 缺点:脱离 Django 生态后,ORM/后台管理都要自己选配。
  • 适合人群:独立开发者、小型项目,追求轻量 + 灵活。

我在试用的时候,最大的感觉是:写法清爽,没有 Django 那么多历史包袱。

后续我会拿 LiteStar 来开发一个正式的项目试试水。

到时再来分享一波。

异步 ORM

脱离了 Django 生态,最不习惯的应该就是 ORM。

LiteStar 没有内置 ORM,那选谁?我个人推荐 Tortoise ORM

这玩意写法和 Django ORM 非常像

class Event(Model):id = fields.IntField(pk=True)name = fields.CharField(max_length=255)start_time = fields.DatetimeField()

是不是有点眼熟?

对 Django 用户来说学习成本很低。

  • 优点:异步原生,写法和 Django ORM 一致。
  • 缺点:生态规模不如 Django ORM,社区活跃度有待观察。

如果习惯了 Django ORM,但又想要 async/await,Tortoise ORM 是个不错的选择。

Granian

Rust 驱动的高性能服务器

部署层面,我最近发现一个新玩意:Granian

  • 用 Rust 写的 ASGI 服务器,比 Uvicorn/Daphne 更快。
  • 可以直接处理静态文件,很多场景下连 Nginx 都不用。
  • 内置多 worker,部署流程更简单。

换句话说:一次性代替 Daphne + Nginx

我准备在 DjangoStarter 的后续实验里用 Granian 来跑,看看能不能省下一层反向代理。毕竟最近正头疼 DjangoStarter 的 Nginx 配置要如何优雅整合 URL Prefix 功能呢🤣

Robyn

Python 写法 + Rust 性能

另一个值得关注的是 Robyn。它的思路是:用 Rust 写底层 runtime,用 Python 提供 API 层。

这样既有 Python 的易用性,又能跑到接近 Node.js/Rust 框架的性能。

  • 内置路由、静态文件、模板
  • 高性能异步 runtime
  • 对开发者友好,写法接近 Flask/FastAPI

看起来是个很酷的框架,把 Python 的易用性 + Rust 的性能结合起来,一言以蔽之就是「生产力与速度兼顾」,感觉也可以玩一玩

小结

2025 的 Python Web 生态,已经不只是 Django vs Flask vs FastAPI。

新的趋势是:

  • 框架更轻量(LiteStar)
  • ORM 原生异步(Tortoise)
  • 部署层更快更简单(Granian)
  • Rust 加持性能(Robyn)

我的感受是:Django 依然重要,但新框架给独立开发者和小团队带来了更多可能性

未来我会在实际项目里试试 Robyn 和 Granian,看看能不能让 Python 写法 + Rust 性能落地。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/906936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AtCoder Beginner Contest 423

D - Long Waiting 三个优先队列 #include<bits/stdc++.h> using namespace std; #define endl \n #define yes cout << "YES" << endl #define no cout << "NO" <<…

SRAM和DRAM的特点和区别

SRAM 静态随机存取存储器 基本结构和工作原理:核心单元:SRAM每个cell 由6 个晶体管 组成,形成一个双稳态触发器电路。 工作原理:这种电路结构由两个稳定的状态,分别代表逻辑“0”和逻辑“1”。只要保持通电,状态…

xml基本语法

1. xml的基本结构 XML(可扩展标记语言,eXtensible Markup Language)是一种用于存储和传输结构化数据的标记语言,核心特点是自定义标签和严格的语法规则.一个合法的 XML 文档必须包含文档声明和唯一根元素<?xml…

Java25新特性

🛠️ 1. 语言特性与开发者体验实例主方法 (Instance Main Methods)​: 支持省略 public static修饰符的 void main()方法,使初学者更易编写第一个Java程序。// 无需显式类声明和public static修饰符 void main() {I…

Day17多维数组

多维数组可以看成数组的数组,即在数组中在嵌套一个数组 例如二维数组是一个特殊的一维数组,他的每一个元素都是一个一维数组(1,2,3,4,5.......) 格式与一维数组相似:int [] [] a = new int [i] [j]; 举例的二维…

US$49.99 315Mhz 5 Button Keyless Entry Remote Key Fob OHT01060512 For Chevrolet Buick GMC

315Mhz 5 Button Keyless Entry Remote Key Fob OHT01060512 For Chevrolet Buick GMC 5pcs/lot Package includes:5 pc x 315Mhz 5 Button Keyless Entry Remote Key Fob OHT01060512 For Chevrolet Buick GMC Pictur…

C++ lambda 匿名函数

1、基本介绍 C++11 引入的 lambda 匿名函数(Lambda Expression)是一种轻量级的函数对象,可在需要函数的地方直接定义,无需单独声明,极大简化了代码编写(尤其是回调函数、算法谓词等场景)。 基本语法: [capture…

D拼数

include<stdio.h> include<stdlib.h> #include<string.h> int compare(const void *a, const void *b) { char str1[40], str2[40]; // 1:a在前,b在后 sprintf(str1, "%d%d", *(int *)a…

20250917 - WETToken 攻击事件:价格操控产生的套利空间

背景信息Alert:https://x.com/TenArmorAlert/status/1968223320693686423 TX:https://app.blocksec.com/explorer/tx/bsc/0xf92539acf7eadfd4a98925927a52af5349cb13c2a250908373a5baf8ea4b49adTrace 分析 发生攻击的…

US$18 3 Button Smart Card For Hyundai 433.92MHz

3 Button Smart Card For Hyundai 433.92MHz Package includes:1pc x 3 Button Smart Card For Hyundai 433.92MHz Pictures of 3 Button Smart Card For Hyundai 433.92MHz3 Button Smart Card For Hyundai 433.92MHz…

题解:P6798 「StOI-2」简单的树

简单的树: 题意: 一颗树,每个节点有一个权值 \(c_i\)。 \(val_i\):\(i\) 为根的子树内所有 \(c_i\) 的最大值。 \(f(x,y)\):\(c_{x}\) 改为 \(y\) 后 \(val_i\) 之和。 每次询问给定 \((l,r,a)\) ,求 \(\sum\lim…

题解:P11704 [ROIR 2025] 旅行路线

旅行路线: 很有参考价值的一道题,其他题解有点抽象,我来。 转化题意 题意转化为 \((1,2)→(n-1,m),(2,1)→(n,m-1)\) 的两条链不相交且经过所有关键点的方案数。 其他点没用,我们以下的点指关键点。 无不能相交限制…

题解:P11292 【MX-S6-T4】「KDOI-11」彩灯晚会

彩灯晚会:\(n\) 点 \(m\) 边 \(k\) 种颜色,给每个点染色。 \(cnt_i\):第 \(i\) 种颜色长度为 \(l\) 的链的数量。其中 \(l\) 为题目给的一个常量。 求 \(\sum_{染色方案}\sum_{i=1}^k cnt_i^2\) 的和。一\(\sum_{染…

算法课程第一周作业

《数学之美》第一章启示 《数学之美》的第一章,在算法工程师眼中,并非传授某个具体算法.而是重构了我们理解、设计和应用算法的底层思维框架,世界的基本问题是算法问题,而数学是寻找最优算法的终极语言。 启示一:所有问…

US$7.9 3 Button Remote Key for Chrysler/Jeep 315Mhz

3 Button Remote Key for Chrysler/Jeep 315Mhz GQ43VT13T Package includes:1pc x 3 Button Remote Key for Chrysler/Jeep 315Mhz GQ43VT13T Pictures of 3 Button Remote Key for Chrysler/Jeep 315Mhz3 Button Rem…

vue3 内存溢出临时方法

"serve1":"node --max_old_space_size=8096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve --open","serve2":"node --max_old_space_size=9096 node_modules/@vue…

实测对比:权威榜单之微信排版Top 5编辑器大揭秘

在新媒体运营的世界里,微信排版可是重中之重,它直接影响着文章的视觉效果和读者的阅读体验。很多运营人都有这样的痛点:写作慢、排版耗时、跨平台排版不统一、配图难还可能有侵权风险等。为了帮大家解决这些难题,我…

自建仓库推送到NAS采用 Docker Registry 工作流

放弃手动 `save` 和 `load` 的方式,改用行业标准的 Registry(仓库)模式。这是最专业、最高效的方案。 **优点**: - **彻底解决版本兼容性问题**,因为 push/pull 协议是标准化的。 - 传输效率高,再次推送时只会上…

【汇编和指令集 . 第2025 . 9期】发现大牛

【编者按】在计算机、互联网风行半个世纪之后,我们发现:科技预言家越来越多了,思想家缺位了。生活节奏变快了,思想退步了;书写减少了,纸张缺没少;知识泛滥了,思考没有深入......我们有可能遭AI时代的反噬。时代…

Opencompass避坑日记

安装首先执行pip安装 再下载源代码第一句是为了安装opencompass的依赖包,第二句是为了在当前目录引入本地目录的opencomass模块。 因为有很多修改的地方。 测评VLLM 放弃吧,这个框架对VLLM的支持很差。测评方式:稳定…