Django 如何捕获所有 URL?

2023-04-11 00:00:00 django url 捕获

要捕获所有 URL,可以使用 Django 的通配符路由,在主 urls.py 文件的末尾添加如下代码:

from django.urls import re_path

urlpatterns = [
    # 其他 URL 配置
    re_path(r'^.*$', views.catch_all),  # 捕获所有 URL
]

这里使用了 re_path 函数,它可以使用正则表达式来匹配 URL。^.*$ 匹配任意字符串,因此它可以匹配所有 URL。

views.catch_all 是一个视图函数,它会处理所有不匹配其他 URL 的请求。可以在对应的 views.py 文件中定义这个函数,例如:

from django.http import HttpResponse

def catch_all(request):
    return HttpResponse("Welcome to pidancode.com!")

如果你访问任何 URL,它都会返回“Welcome to pidancode.com!”这个字符串。当然,你可以根据具体业务需求自定义这个视图函数的行为。

需要注意的是,所有 URL 请求都将被捕获,并且如果之前有其他与此正则表达式相匹配的路由,则会被覆盖。因此,这应该是你 urlpatterns 列表的最后一项。

总之,以上就是 Django 捕获所有 URL 的方法。

相关文章