如何在 Django 中使用可选的正则表达式来匹配 URL?
在 Django 中,可以使用正则表达式来匹配 URL。有时候我们可能需要某些 URL 是可选的,也就是说,可以有或者没有这个 URL。
比如,我们希望可以访问 pidancode.com 或者 pidancode.com/about,其中 /about 是可选的,这时我们可以使用如下的正则表达式:
from django.urls import re_path urlpatterns = [ re_path(r'^pidancode\.com(/about)?/$', views.my_view), ]
上面的正则表达式中,(/about)?
表示 /about
是可选的,即可以有也可以没有。$
表示 URL 结尾,防止匹配到其他的 URL。
接下来,当用户访问 pidancode.com/about 时,Django 会自动解析出 /about
这个参数,然后将其传递给 Views 层的 my_view
函数,我们可以在 my_view
函数中获取这个参数并进行相应的处理。
例如,我们可以这样书写视图函数:
def my_view(request, option=None): if option: return HttpResponse("您正在访问 pidancode.com/about。") else: return HttpResponse("您正在访问 pidancode.com。")
当访问 pidancode.com 时,响应内容是 “您正在访问 pidancode.com。”,访问 pidancode.com/about 时,响应内容是 “您正在访问 pidancode.com/about。”。
这样,我们就成功地使用了可选的正则表达式来匹配 URL。
相关文章