【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 → 业务代码

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

相关推荐
Lsir10110_12 分钟前
从按钮“点不动“讲起——深入理解 Qt 信号槽机制
开发语言·qt·信号处理
君科程序定做14 分钟前
用 IDL 处理高分一号(GF-1 / GF-1B/C/D)数据
c语言·开发语言
敲代码的嘎仔16 分钟前
用 Redis 合并写 + DelayQueue 延迟检测,把视频播放进度写库频率降到 1/60
java·开发语言·数据库·redis·缓存·音视频·高并发
承渊政道29 分钟前
Python IDLE鸿蒙PC适配全记录:用 ArkUI 重建编辑、运行、Shell 与基础调试闭环
python·microsoft·harmonyos·鸿蒙系统·pc端
zjh90053031 分钟前
Kotlin黑科技:空安全与Java兼容性深度解析
python
代码中介商1 小时前
C++ 预约系统实战(一):项目总览与 C/S 架构设计
c语言·开发语言·c++
黄昏恋慕黎明1 小时前
博客论坛技术迭代
python·pytest
我叫汪枫1 小时前
RAG 进阶:切分、检索、重排序,以及它和 Agent、微调、MCP 都是什么关系
开发语言·python
冰芒芒1 小时前
构建你的第一个 Agent 项目
python
gf13211111 小时前
【python_发送飞书卡片消息_直接组装JSON格式发送卡片】
python·json·飞书