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

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

相关推荐
John.Lewis3 分钟前
C++进阶(12)附加学习:STL之空间配置器(了解)
开发语言·c++·笔记
weixin_5860614612 分钟前
CSS Grid布局如何解决图片溢出网格单元_设置object-fit与网格尺寸.txt
jvm·数据库·python
计算机徐师兄27 分钟前
Python基于农村和城镇人民生活数据的可视化系统(附源码,文档说明)
python·生活·农村和城镇人民生活数据·python人民生活数据·农村和城镇人民生活数据可视化·生活数据可视化系统·python生活数据的可视化
Byron Loong28 分钟前
【网络】Python 怎么做TCP通讯
网络·python·tcp/ip
ILYT NCTR30 分钟前
爬虫学习案例3
爬虫·python·学习
Greyson132 分钟前
CSS Grid布局如何解决图片溢出网格单元_设置object-fit与网格尺寸.txt
jvm·数据库·python
234710212734 分钟前
4.16 学习笔记
开发语言·软件测试·python
2401_8836002542 分钟前
Redis如何查询特定用户的排名_利用ZREVRANK指令获取ZSet降序名次
jvm·数据库·python
014-code43 分钟前
日志规范:怎么写才不算写废话
java·开发语言·设计模式·日志
2301_777599371 小时前
如何决定是否需要创建索引_数据区分度与基数Cardinality计算
jvm·数据库·python