目录
[四、最小可跑项目(Python - Flask)](#四、最小可跑项目(Python - Flask))
[五、FastAPI 版本(更接近 Java 的结构)](#五、FastAPI 版本(更接近 Java 的结构))
[八、返回 JSON 对照](#八、返回 JSON 对照)
一、这篇文章怎么用
你会 Java Web(Spring Boot),想快速上手 Python Web(Flask/FastAPI)。本文只讲"最常见写法对照",不讲虚的。看完你就能起一个能跑的接口。
二、整体结构对照
- Java:Controller/Service/Repository 分层 + application.yml
- Python:router/service/dao 分层 + config.py/.env
- Java 启动:SpringApplication.run
- Python 启动:app.run() / uvicorn.run()
三、最小可跑项目(Java)
project-root/
src/main/java/com/demo/App.java
src/main/java/com/demo/controller/UserController.java
src/main/resources/application.yml
pom.xml
// UserController.java
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/hello")
public String hello() {
return "hello";
}
}
四、最小可跑项目(Python - Flask)
project-root/
app/
init.py
requirements.txt
app/main.py
from flask import Flask
app = Flask(name)
@app.route('/user/hello')
def hello():
return 'hello'
if name == 'main':
app.run()
五、FastAPI 版本(更接近 Java 的结构)
app/main.py
from fastapi import FastAPI
app = FastAPI()
@app.get('/user/hello')
def hello():
return {"msg": "hello"}
uvicorn app.main:app --reload
六、路由对照(最常用)
// Java
@GetMapping("/user/{id}")
public User get(@PathVariable Long id) { ... }
// Python
@app.get('/user/{id}')
def get(id: int): ...
七、参数获取对照
// Java Query
@GetMapping("/list")
public List<User> list(@RequestParam int page) { ... }
// Python Query
@app.get('/list')
def list(page: int = 1): ...
八、返回 JSON 对照
// Java
return new User(1, "Tom");
// Python
return {"id": 1, "name": "Tom"}
九、配置文件对照
Java 用 application.yml;Python 常用 .env 或 config.py。
十、常见坑
- Python 启动时要注意端口和 host
- Flask 默认是开发模式,不适合直接线上
- FastAPI 要用 uvicorn 启动
结语
这篇文章专注"能跑 + 好理解"。会 Java 的人直接照着对照写,一小时内就能搭起 Python Web。
补充说明
这里继续用更直白的说法:如果你会 Java,就把"做法"和"习惯"平移到 Python,只是写法更短、文件更少。任何一个场景,都先写出能跑的最小版本,再慢慢拆层、加配置、加日志。
真正容易出问题的地方不是语法,而是结构、依赖、配置、并发和资源释放。把这些点做对,Python 项目一样稳。
这篇文章提供的是"对照式地图",你可以直接照着映射去写。