Django URL映射
好了,到目前为止,我们已经学会了创建模型、视图和模板。现在,我们将学习应用程序的路由。
由于Django是一个Web应用程序框架,它通过URL定位器接收用户请求并做出响应。 为了处理URL,框架使用了 django.urls 模块。
让我们打开项目的 urls.py 文件,看看它是什么样子:
// urls.py
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
看,Django已经在这里提到了admin的URL。path函数将第一个参数作为字符串或正则表达式类型的路由。
view参数是一个视图函数,用于向用户返回一个响应(模板)。
django.urls 模块包含各种函数,其中 path(route,view,kwargs,name) 是其中之一,用于映射URL并调用指定的视图。
Django URL函数
在这里,我们提供一些常用的URL处理和映射函数。
名称 | 描述 | 示例 |
---|---|---|
path(route, view, kwargs=None, name=None) | 它返回一个用于包含在urlpatterns中的元素。 | path(‘index/’, views.index, name=’main-view’) |
re_path(route, view, kwargs=None, name=None) | 它返回一个用于包含在urlpatterns中的元素。 | re_path(r’^index/$’, views.index, name=’index’), |
include(module, namespace=None) | 这是一个函数,用于将完整的Python导入路径传递给另一个URLconf模块,并应该在此位置“包含”。 | |
register_converter(converter, type_name) | 用于在path()路由中注册转换器的方法。 |
让我们来看一个例子,获取用户请求并将该路由映射到指定的视图函数。看看步骤。
1. 在views.py文件中创建一个名为 hello 的函数。这个函数将从url.py文件映射得到。
// views.py
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse, HttpResponseNotFound
from django.views.decorators.http import require_http_methods
@require_http_methods(["GET"])
def hello(request):
return HttpResponse('
# This is Http GET request.
')
// urls.py
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
path('hello/', views.hello),
]
现在,启动服务器并输入 localhost:8000/hello 到浏览器中。这个URL将会被映射到URL列表中,并调用对应的函数从views文件中。
在这个例子中,hello将被映射并调用views文件中的hello函数。这被称为URL映射。