一、初识URLconf:Django的“交通指挥中心”
想象一下,你开了一家叫做“我的博客”的超级公司(你的Web项目)。用户(HTTP请求)从四面八方涌来,说要找“张三的文章”(/article/zhangsan/),或者要看“最新的段子”(/jokes/latest/)。
这时候,谁来决定把用户带到正确的办公室(视图函数)去?就是你项目里的 urls.py 这个文件!它的大名叫做 URL配置(URLconf),它就是你们公司的“前台总机”兼“交通总指挥”。
这个总指挥的工作流程简单得令人发指:
- 来客了! 一个HTTP请求带着它的路径(比如
/about/)来到服务器。 - 总机查表! Django核心拿着这个路径,跑到
urls.py这个“路由表”里,从上到下一行一行地比对。 - 匹配成功! 找到了对应的
path,比如path('about/', views.about_view)。 - 呼叫办公室! 总指挥立刻拿起电话(调用)
views.about_view这个视图函数:“嘿,来活了,是关于我们公司的介绍!” - 办公室接客! 视图函数开始工作,处理业务逻辑,最后返回一个漂亮的HTML页面(HttpResponse)给用户。
看,整个过程清晰明了。所以,我们的核心任务就是:写好这张“路由表”!
二、核心武器:path() 与 re_path(),你的左右护法
在Django 2.0之后,两位得力干将闪亮登场,它们都住在 django.urls 这个模块里。
1. path(): intuitive,我的超人!
path() 是咱们的“常规武器”,90%的场景都用它。它的语法简单到哭:
path(route, view, kwargs=None, name=None)
route: 一个字符串,用来匹配URL路径。注意:它不匹配GET或POST参数(即?xxx=yyy那部分)。view: 遇到匹配的路径时,要调用的那个视图函数。直接写函数名,别加括号!kwargs: 可选的,一个字典,可以传递额外的参数给视图函数(用得少)。name: 超级重要的功能! 给这个URL起个独一无二的小名,后面会讲到它的妙用。
举个栗子 🌰:
# 在 urls.py 里
from django.urls import path
from . import views # 从当前目录导入views模块
urlpatterns = [
path('', views.home_page, name='home'), # 首页:http://127.0.0.1:8000/
path('about/', views.about_us, name='about'), # 关于页面
path('articles/<int:article_id>/', views.article_detail, name='article_detail'),
]
重点来了!看第三行:'articles/<int:article_id>/'。这里的 <int:article_id> 就是 路径转换器,是 path() 的大杀器!
< >尖括号表示要从这里捕获一个

最低0.47元/天 解锁文章
2104

被折叠的 条评论
为什么被折叠?



