Python Web 路由详解:核心知识点全覆盖
文章目录Python Web 路由详解核心知识点全覆盖一、什么是路由一句话讲明白二、路由的核心作用三、一个最简单的路由示例以 FastAPI 为例四、路由的四大基本要素1. 请求方法Method2. 请求路径Path3. 视图函数 / 接口函数4. 响应结果五、路由传参方式最常用的 3 种1. 路径参数直接写在 URL 里2. 查询参数? 后面的参数3. 请求体参数POST、表单、JSON六、路由前缀与分组实际开发必用七、路由匹配规则非常重要八、其他 Python Web 框架路由对比一眼看懂Flask 路由Django 路由urls.py九、路由常见错误十、总结极简版Python Web 路由详解核心知识点全覆盖本文以直白、通俗的方式系统讲解 Python Web 开发中路由的核心概念、工作原理、常见写法与使用细节不讲废话、不堆冗余内容让你一篇吃透路由到底是什么、怎么用、为什么这么写。一、什么是路由一句话讲明白路由 请求地址 对应执行的函数浏览器访问一个 URL比如http://127.0.0.1:8000/login后端根据/login这个路径找到提前绑定好的函数并执行这个**“路径匹配 函数调用”**的机制就叫路由。你可以理解为路由就是 Web 框架里的“导航员”。二、路由的核心作用规定用户访问哪个地址执行什么逻辑区分不同业务接口登录、注册、上传、查询等接收前端传参路径参数、查询参数、表单等决定返回什么内容HTML、JSON、文件等三、一个最简单的路由示例以 FastAPI 为例fromfastapiimportFastAPI appFastAPI()# 路由访问 / 时执行下面函数app.get(/)defindex():return{message:首页}# 路由访问 /login 时执行登录逻辑app.post(/login)deflogin():return{message:登录接口}app.get(/)装饰器用来注册路由/请求路径get请求方法下面的函数路径匹配成功后执行的逻辑四、路由的四大基本要素1. 请求方法Method最常用就 4 种GET查询、获取数据查POST提交、新增数据增PUT更新数据改DELETE删除数据删框架会根据方法路径一起匹配方法不对直接 405 错误。2. 请求路径Path就是 URL 里域名后面的部分//user/upload/article/1233. 视图函数 / 接口函数路径匹配成功后真正干活的函数。4. 响应结果函数 return 什么前端就收到什么。五、路由传参方式最常用的 3 种1. 路径参数直接写在 URL 里app.get(/user/{user_id})defget_user(user_id:int):return{用户ID:user_id}访问/user/1001就能拿到user_id1001。2. 查询参数? 后面的参数app.get(/search)defsearch(keyword:str,page:int1):return{关键词:keyword,页码:page}访问/search?keywordpythonpage23. 请求体参数POST、表单、JSONfrompydanticimportBaseModelclassUser(BaseModel):username:strpassword:strapp.post(/register)defregister(user:User):return{账号:user.username}六、路由前缀与分组实际开发必用项目大了以后接口会非常多必须模块化拆分。以 FastAPIAPIRouter为例fromfastapiimportAPIRouter user_routerAPIRouter(prefix/user,tags[用户模块])user_router.get(/info)defuser_info():return{msg:用户信息}最终访问路径/user/info好处结构清晰方便权限控制便于维护和文档分类七、路由匹配规则非常重要精确匹配优先/user/info会优先匹配写死的路由而不是/user/{id}顺序从上到下匹配前面的路由先匹配匹配成功就不再往下走方法必须一致定义 app.get前端用 post 访问会报错路径大小写敏感/Login和/login是两个不同路由八、其他 Python Web 框架路由对比一眼看懂Flask 路由fromflaskimportFlask appFlask(__name__)app.route(/)defindex():returnHelloDjango 路由urls.pyfromdjango.urlsimportpathfrom.importviews urlpatterns[path(,views.index),path(login/,views.login),]思想完全一致路径 → 函数九、路由常见错误404 Not Found路径写错、路由没注册、方法不匹配405 Method Not Allowed用 post 访问了 get 接口参数类型错误路径参数应该是 int传了字符串路由重复注册同一个路径方法绑定了多个函数十、总结极简版路由 地址 函数核心方法 路径 函数 参数传参分三种路径参数、查询参数、请求体大型项目一定要用路由分组Router匹配顺序从上到下精确优先