在Django中无需自定义函数解析,如何获取URL最后一段参数?
在Django中无需自定义函数获取URL最后一段的方法
当然有,以下两种原生方式可以实现,无需编写自定义解析函数:
方法1:通过URL路由捕获(推荐)
这是Django的标准用法,直接在路由配置中定义参数捕获,视图函数可直接获取URL最后一段内容:
路由配置(urls.py)
from django.urls import path from . import views urlpatterns = [ # 用<int:article_id>捕获最后一段整数,也可以用<str:xxx>捕获字符串类型内容 path('test/article/<int:article_id>/', views.article_detail, name='article-detail'), ]
视图函数
def article_detail(request, article_id): # article_id就是URL最后一段的"1",且自动转为整数类型 # 直接使用该值即可 return HttpResponse(f"目标ID: {article_id}")
方法2:利用request.path做字符串分割
如果无法修改路由配置,可以直接通过request.path属性结合Python内置字符串方法提取最后一段:
def some_view(request): # request.path 返回URL的路径部分,比如"/test/article/1" # 先去除首尾的斜杠,再按斜杠分割,取最后一个元素 last_segment = request.path.strip('/').split('/')[-1] # 若需要转为整数,可执行 int(last_segment) return HttpResponse(f"URL最后一段: {last_segment}")
内容的提问来源于stack exchange,提问作者Peanut Gallery
相关产品推荐
相关产品推荐

