小沐:戈戈,你说现在Python Web框架这么多,到底哪个好啊?
戈戈:哈哈,这问题就像问三国时期哪个诸侯最强一样,得看具体情况!
小沐:比喻这么生动?那你给我讲讲唄,我最喜欢听你用故事讲技术了!
戈戈:好!今日且让我以三国演义,论Python Web服务框架的三分天下!
小沐:太好了!我这就搬好小板凳!
image
一、Flask军:轻骑突袭,以简制胜
Flask是Python最流行的微Web框架之一,核心代码仅万余行,却提供了极高的扩展性。它就像三国中的轻骑兵,灵活快速,适合中小型项目和微服务架构。
安装方法如下:
以下是一个完整的Flask API示例,展示了如何创建简单的HTTP服务:
# -*- coding: utf-8 -*-# hello_flask.py# 引入Flask核心类from flask import Flask, jsonify, Responseimport json# 创建Flask应用实例app = Flask(__name__)# 配置JSON响应编码为UTF-8app.config['JSON_AS_ASCII'] = False# 自定义JSON响应函数def json_response(data, status=200): response = Response( json.dumps(data, ensure_ascii=False), status=status, mimetype='application/json; charset=utf-8' ) return response# 定义根路由的GET请求处理@app.route('/', methods=['GET'])def hello(): return json_response({ "message": "三分天下,Flask为轻骑!", "status": "success", "author": "诸葛亮" })# 定义API路由@app.route('/api/orders/<int:order_id>', methods=['GET'])def get_order(order_id): return json_response({ "order_id": order_id, "status": "shipped", "items": ["羽扇", "纶巾", "草船"] })if __name__ == '__main__': # 启动Flask开发服务器 app.run(host='0.0.0.0', port=5000, debug=True)
代码运行结果如下:
在浏览器预览如下:

二、Django军:水陆并进,稳如泰山
Django是Python生态中最完善的企业级Web框架,内置了ORM、管理后台、用户认证、缓存等全套解决方案。它如同曹魏大军,兵多将广,适合大型复杂项目。
Django采用"MTV"设计模式,即Model(模型)、Template(模板)、View(视图)。这种分层架构让代码结构清晰,便于团队协作开发。在实际项目中,我们需要先创建Django项目和应用,配置好settings.py中的数据库连接、INSTALLED_APPS应用列表、中间件MIDDLEWARE等核心配置。路由配置在urls.py中定义,视图逻辑则在views.py里实现。Django还提供了强大的admin管理后台,只需几行代码就能生成可CRUD的数据管理界面。
安装方法如下:
Django项目初始化步骤:
# 1. 创建Django项目django-admin startproject myproject# 2. 进入项目目录cd myproject# 3. 创建应用python manage.py startapp myapp# 4. 注册应用(编辑settings.py的INSTALLED_APPS)# 添加 'myapp' 到 INSTALLED_APPS 列表# 5. 运行迁移(创建数据库表)python manage.py migrate# 6. 启动开发服务器python manage.py runserver
image注册应用详细步骤:
打开项目目录下的 myproject/settings.py 文件,找到 INSTALLED_APPS 列表,添加应用名称:
# settings.pyINSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 在这里添加你的应用 'myapp',]
保存文件后,应用即注册成功。
以下是一个Django视图函数的示例,展示了企业级开发的标准写法:
# myapp/views.py# 导入Django视图类和JSON响应from django.http import HttpResponsefrom django.views.decorators.http import require_http_methodsimport json# 自定义JSON响应函数,解决中文乱码问题def json_response(data, status=200): response = HttpResponse( json.dumps(data, ensure_ascii=False), status=status, content_type='application/json; charset=utf-8' ) return response# 创建API视图函数@require_http_methods(["GET"])def heroes_view(request): """获取三国英雄列表""" heroes = [ {"name": "曹操", "title": "魏王", "weapon": "倚天剑"}, {"name": "刘备", "title": "汉昭烈帝", "weapon": "双股剑"}, {"name": "孙权", "title": "吴大帝", "weapon": "古锭刀"} ] return json_response({ "code": 200, "message": "三分天下英雄会", "data": heroes })
代码运行结果如下:

三、FastAPI军:异步新贵,一日千里
FastAPI是近年来崛起的异步Web框架,基于Starlette和Pydantic构建,原生支持异步编程,API自动文档生成,性能直逼Go语言。它宛如东吴周郎,年少成名,技艺超群。
安装方法如下:
pip install fastapi uvicorn
以下是一个完整的FastAPI示例,展示了现代异步开发的强大能力:
# main_fastapi.py# 导入FastAPI和类型注解from fastapi import FastAPI, HTTPExceptionfrom pydantic import BaseModelfrom typing import Optional, Listimport uvicorn# 创建FastAPI应用实例app = FastAPI(title="三国API", version="1.0.0")# 定义数据模型class Hero(BaseModel): name: str kingdom: str weapon: Optional[str] = None# 定义GET请求路由@app.get("/")async def root(): return { "message": "东吴周郎,异步称王!", "framework": "FastAPI", "feature": "高性能异步" }# 获取单个英雄信息@app.get("/heroes/{hero_name}")async def get_hero(hero_name: str): heroes_db = { "曹操": {"kingdom": "魏", "weapon": "倚天剑"}, "刘备": {"kingdom": "蜀", "weapon": "双股剑"}, "孙权": {"kingdom": "吴", "weapon": "古锭刀"} } if hero_name not in heroes_db: raise HTTPException(status_code=404, detail="英雄未找到") return {"name": hero_name, **heroes_db[hero_name]}if __name__ == "__main__": # 启动FastAPI服务器(需安装uvicorn) uvicorn.run(app, host="0.0.0.0", port=9000)
代码运行结果如下:
在浏览器预览如下:

小沐:戈戈,听你这么一讲,我算是搞明白Python Web框架的天下了!
戈戈:天下大势,分久必合,合久必分。选对工具才能一统江湖!
小沐:我这就去搭建一个三国主题的Web服务!

结语
如果您觉得这些文字有一点点用处,请给作者点个赞或关个注;╮( ̄▽ ̄)╭
如果您有技术问题探讨,评论处留言。//(ㄒoㄒ)//
谢谢各位童鞋们啦( ´ ▽ ` )ノ ( ´ ▽ `` )っ!
更多精彩文章详见:
CSDN博客:爱看书的小沐