【python面试】你x的启动?

我直接给你**"服务端真实启动用什么命令"的对照版**,不绕概念。

一、FastAPI 服务端启动命令

✅ 标准 / 正确 / 生产与开发都通用

uvicorn main:app --host 0.0.0.0 --port 8000

含义拆解(非常重要):

main:app

│ │

│ └── FastAPI 实例名

└────── Python 文件名(main.py

🔁 开发时常用(自动热重载)

uvicorn main:app --reload

🧠 FastAPI 为什么不用 python main.py

因为 FastAPI 本身 不负责启动 HTTP Server

它只负责:

• 路由

• 依赖注入

• 请求处理逻辑

👉 真正监听端口的是 ASGI Server(uvicorn / hypercorn)

二、Flask 服务端启动命令

Flask 有 两种启动方式,本质不同。

✅ 方式一:Flask 官方 CLI(推荐)

export FLASK_APP=app.py

export FLASK_ENV=development

flask run

或一行写法:

FLASK_APP=app.py flask run

监听端口默认是:

127.0.0.1:5000

✅ 方式二:python 直接启动(最常见)

app.py

if name == "main ":

app.run(host="0.0.0.0", port=5000, debug=True)

然后:

python app.py

⚠️ 注意(非常关键)

app.run() 用的是 Flask 内置开发服务器

• ❌ 不适合生产

• ❌ 性能差

• ❌ 单进程

三、FastAPI vs Flask 启动方式本质对比(重点)

项目 FastAPI Flask

协议模型 ASGI WSGI

启动者 uvicorn flask / python

HTTP Server 外部必须 内置(开发用)

并发模型 async / await 同步

生产常用 uvicorn / gunicorn gunicorn

四、生产环境标准启动方式(你以后一定会用)

🚀 FastAPI(生产)

gunicorn main:app

-k uvicorn.workers.UvicornWorker

-w 4

-b 0.0.0.0:8000

🚀 Flask(生产)

gunicorn app:app -w 4 -b 0.0.0.0:5000

五、一句话给你"底层真相版"总结

FastAPI 不"自己启动服务",它只"被服务运行";

Flask 能"自己启动服务",但那只是给开发者用的。

如果你愿意,我可以下一步直接给你画一张:

Nginx → Uvicorn → FastAPI → 业务代码

Nginx → Gunicorn → Flask → 业务代码

这种真实部署链路图,你会一下子彻底明白。

相关推荐
Rinai_R2 小时前
关于 Go 的内存管理这档事
java·开发语言·golang
八月ouc2 小时前
Python实战小游戏(二): 文字冒险游戏
数据结构·python·文字冒险
tyatyatya2 小时前
MATLAB图形交互教程:鼠标拾取/坐标轴交互/动态绘图实战详解
开发语言·matlab·计算机外设
乐茵lin2 小时前
golang中 Context的四大用法
开发语言·后端·学习·golang·编程·大学生·context
Blossom.1182 小时前
多模态大模型实战:从零实现CLIP与电商跨模态检索系统
python·web安全·yolo·目标检测·机器学习·目标跟踪·开源软件
wasp5202 小时前
AgentScope深入分析-设计模式与架构决策分分析
开发语言·python·agent·agentscope
山土成旧客2 小时前
【Python学习打卡-Day26】函数的艺术(上):从基础定义到参数魔法
开发语言·python·学习
Coder_Boy_2 小时前
【人工智能应用技术】-基础实战-小程序应用(基于springAI+百度语音技术)智能语音控制-Java部分核心逻辑
java·开发语言·人工智能·单片机
MACKEI2 小时前
业务域名验证文件添加操作手册
java·开发语言