如何在 Django 中将多个 URL 映射到同一个视图函数上?

2023-04-11 00:00:00 视图 多个 映射

在 Django 中,可以使用 urlpatterns 列表来定义 URL 映射规则。其中,每个 urlpatterns 元素都是一个由 URL 规则和映射的视图函数组成的元组。要将多个 URL 映射到同一个视图函数上,可以将多个 urlpatterns 元素指向同一个视图函数。

下面是一个例子,将 "/pidancode/" 和 "/pida/" 两个 URL 映射到同一个视图函数上:

from django.urls import path
from . import views

urlpatterns = [
    path('pidancode/', views.my_view),
    path('pida/', views.my_view),
]

在这个示例中,我们将 "pidancode/" 和 "pida/" 两个 URL 都映射到了名为 my_view 的视图函数上。这样,当用户访问这两个 URL 的时候,都将触发 my_view 函数的执行。

示例代码演示:

from django.shortcuts import render
from django.http import HttpResponse

def my_view(request):
    return HttpResponse("<h1>Welcome to pidancode.com</h1>")

urlpatterns = [
    path('pidancode/', my_view),
    path('pida/', my_view),
]

这个例子中,我们在 my_view 函数中返回了一个简单的 HTML 内容,用来提示用户已经访问了 pidancode.com。当用户访问 "/pidancode/" 或者 "/pida/" 时,都将看到这个页面的内容。

需要注意的是,URL 映射规则的匹配是按照 urlpatterns 列表中定义的顺序进行的。因此,在多个 URL 映射规则中,如果前面的规则已经匹配成功,后面的规则将不会再被尝试匹配。因此,最好将更具体的 URL 规则放在前面,以便更好的匹配到用户请求的 URL。

相关文章